Mendelevium
Diary
Drug Design
Field Knowledge
Academia
Yang
Biology
Physics
Free Energy
Machine Learning & AI
Active Learning
Basics
Boltz-2
Data
Generation
Interpretability
QSAR application
Representations
Mol2Image
Workflow & Agent
Molecular Dynamics
FF & Algorithm
Small Molecule
martini
water
Interaction
Modeling & Tools
QM
Sampling & Analysis
Allostery
Fundamental
Other
Specific Sytems
Enzyme Engineering
Fiber & LLPS
Membrane
orientation_penetration
Metal
Nano Polymers
Skin Permeation
Techniques
Linux
Python
Research
Web
about
Home
Contact
Copyright © 2025 Xufan Gao | Academic Research Blog
Home
> Machine Learning & AI
A Bunch of Biophysics is Loading ...
Machine Learning & AI
药物发现中的分子表示:从序列到多模态融合
药物发现中的分子表示:从序列到多模态融合 本文信息 标题:Molecular Representations for Drug Discovery(药物发现的分子表示方法) 作者:Leili Zhang, Alex Golts, Vanessa Lopez Garcia 发表时间:2025年(Springer Handbook of Chem- and Bioinformatics 第48章) 单位:IBM Research(美国、以色列、爱尔兰) 引用格式:Zhang, L., Golts, A., & Lopez Garcia, V. (2025). Molecular Representations for Drug Discovery. In J. Leszczynski (Ed.), Springer Handbook of Chem- and Bioinformatics (pp. 1105-1121). Springer Nature Switzerland AG. https://doi.org/10.1007/978-3-031-81728-1_48 摘要 在机器学习辅助药物发现的任务中,分子和靶点首先需要转换为机器可处理的数据格式,然后才能使用各种机器学习算法进行处理。这些机器可处理的数据被称为分子表示。受蛋白质结构层次,即一级、二级、三级和构象系综结构的启发,本文将典型的分子表示重新定义为四种数据模态:序列模态(一维)、拓扑模态(二维)、空间模态(三维)和时间模态(四维)。每种模态都配有文献中的实例进行说明。此外,本文还讨论了用于表示学习的知识图谱以及旨在利用各模态优势的多模态融合技术。 核心观点 四维模态分类体系:基于蛋白质结构层次,将分子表示分为序列(一维)、拓扑(二维)、空间(三维)和时间(四维)四种模态,每种模态都有其独特的物理含义和应用场景 序列模态的高效性:SMILES和蛋白质序列等一维字符串表示因其紧凑性和高效性,在大规模预训练中占据重要位置,如MolFormer和ESM等基础模型 拓扑模态的实用性:二维指纹和分子图捕获了分子的局部环境和连接模式,是传统QSAR和现代GNN方法的核心表示 空间模态的结构敏感性:三维表示充分利用坐标信息和空间关系,对构象敏感,是基于结构的药物设计的核心,但也面临SE(3)对称性等挑战 时间模态的探索性:四维表示包含时间依赖信息,如MD轨迹和构象系综,目前在机器学习中的应用仍相对较少,但熵估计和结合动力学等任务显示出其独特价值 多模态融合的必要性:单一模态往往无法捕获分子的全部信息,多模态融合(早期融合、中间融合、后期融合)可以结合不同模态的优势,但也面临信息冗余和模态崩溃等挑战 知识图谱的整合作用:知识图谱能够整合异构数据源的结构化知识,为表示学习提供领域知识注入,如PrimeKG和OtterKnowledge等方法展示了知识增强表示学习的潜力 图1:分子表示的四维模态分类体系。该图是本文的核心框架图,展示了基于蛋白质结构层次的数据模态分类方法。图中展示了不同模态的典型表示示例: 序列模态:SMILES字符串(如CC(=O)NCCc1c[nH]c2ccc(OC)cc12)和蛋白质序列(如MATLEKLMKAFESLKSF) 拓扑模态:MACCS、Morgan、ECFP等二维指纹以及骨架结构图 空间模态:距离/接触矩阵(如OnionNet、Distogram)、三维指纹(如PLIF、E3FP)、三维图像(体素网格)和三维图(节点N和边E) 时间模态:随时间采样的MD轨迹(c1、c2、c3表示不同时刻的构象) 知识图谱:整合药物-药物相互作用、基因表达网络、蛋白质-GO等多源信息 多模态融合:右侧展示了多模态融合技术(聚合函数f和学习函数p)的应用 背景 在机器学习辅助药物发现的任务中,分子和靶点首先需要转换为机器可处理的数据格式,然后才能使用各种机器学习算法进行处理。这些机器可处理的数据被称为分子表示。分子表示的选择对模型性能有决定性影响,不同的表示方式会编码分子的不同特征,从而影响模型对分子性质的理解和预测能力。 传统的分子表示分类基于人类阅读习惯,包括文本、图、图像和视频;或基于生物医学概念,包括DNA、RNA、蛋白质、小分子、疾病文本描述、生物网络等。然而,这些分类缺乏物理意义的统一框架。本文受蛋白质结构层次的启发,将分子表示重新定义为基于物理理解的数据模态:蛋白质的一级结构对应序列(一维)模态,二级结构对应拓扑(二维)模态,三级结构对应空间(三维)模态,而构象系综对应时间(四维)模态。 为什么要关注分子表示 分子表示是连接化学世界和机器学习模型的桥梁。一个好的分子表示应该能够: 充分编码分子的关键信息,包括拓扑结构、电子性质、空间构象等 满足机器学习算法的要求,如平移和旋转不变性、可微分性等 适应下游任务的需求,如性质预测、生成模型、虚拟筛选等 平衡表达能力和计算效率,在编码足够信息和保持计算可行性之间取得平衡 近年来,随着深度学习技术的发展,分子表示学习方法也取得了显著进展。从传统的QSAR描述符到现代的图神经网络和预训练语言模型,分子表示已经从人工设计的特征发展到数据驱动的表示学习。这种转变不仅提高了预测性能,也拓展了分子表示的应用范围。 分子表示的演进历程 分子表示的发展可以分为几个阶段: 人工设计阶段:化学家根据经验设计分子描述符,如分子量、LogP、拓扑指数等,这些描述符通常具有明确的物理或化学意义 自动化提取阶段:随着计算化学的发展,出现了自动化的分子指纹生成方法,如MACCS keys、ECFP等,这些方法能够系统地提取分子特征 表示学习阶段:深度学习的兴起带来了数据驱动的表示学习,如自动编码器、图神经网络等,能够从数据中自动学习分子表示 预训练模型阶段:大规模预训练模型的出现,如MolFormer、ESM等,通过自监督学习在海量数据上预训练,然后迁移到下游任务 当前挑战 尽管分子表示研究取得了显著进展,但仍面临多个挑战: 表示选择的主观性:如何为特定任务选择合适的分子表示仍缺乏明确指导原则 多模态融合的有效性:如何有效融合不同模态的信息,避免信息冗余和模态崩溃 知识整合的复杂性:如何将领域知识融入表示学习,提高模型的可解释性和泛化能力 评估标准的不一致性:缺乏统一的评估框架来比较不同表示方法的性能 分子表示的四维模态体系 下面这张思维导图可以先把全文主线抓住:本文不是简单罗列工具,而是在回答一个更根本的问题,即药物发现中的分子信息究竟可以按什么物理层次来组织。 mindmap root(药物发现中的分子表示) 序列模态(一维) 小分子字符串 SMILES SELFIES InChI 蛋白质序列 ESM ProteinBERT 拓扑模态(二维) 二维指纹 MACCS ECFP Morgan 二维图像 Chemception DEEPScreen 二维图 AquaSol Weave 空间模态(三维) 距离或接触矩阵 Distogram OnionNet 三维指纹 ECIF PLIF E3FP 三维图像与三维图 Pafnucy SchNet DimeNet 时间模态(四维) 时间依赖指纹 MD-IFP 时间依赖接触矩阵 CASTELO 时间依赖图 MD-Graph 知识图谱与多模态融合 知识增强 OntoProtein KeAP ProtST 多模态知识图谱 OtterKnowledge BioBridge 融合策略 早期融合 中间融合 后期融合 序列模态(一维) 序列模态通常把分子写成线性字符串,用原子符号及其相关属性来编码分子,相邻原子之间的连接关系往往以隐式方式体现在字符串规则中。这类表示紧凑且高效,能够直接借用自然语言处理领域的技术进展。 小分子字符串表示 SMILES(Simplified Molecular Input Line Entry System)是最流行的小分子字符串表示方法。SMILES通过遍历分子图获得,具有非唯一性(同一化合物可有多个SMILES字符串)但明确性(给定SMILES字符串对应单一化合物)的特点。 SMILES的扩展和变体: SMARTS(SMILES Arbitrary Target Specification):增加了额外的符号来帮助指定子结构模式 SELFIES(Self-Referencing Embedded Strings):专注于提供鲁棒表示,始终代表有效分子 InChI(International Chemical Identifier):开源的唯一标识符,但可能存在歧义 InChIKey:InChI的哈希版本,用于网络和库搜索 MolFormer是一个基于 transformer 的基础模型,在来自 ZINC 和 PubChem 数据集的超过10亿条 SMILES上训练。作为基础模型,MolFormer可以在更小的数据集上微调,用于光谱预测、溶解度预测和毒性预测等任务。 蛋白质序列表示 蛋白质这类大分子通常用核苷酸序列或氨基酸序列来定义。在本文讨论的表示学习语境中,更常见的是氨基酸序列。氨基酸由氨基、羧基和侧链组成,是肽和蛋白质的基本构件,常用单字母符号或三字母缩写表示。已知遗传密码编码22种蛋白源性氨基酸,其中通常包括20种常见氨基酸和2种较少见的氨基酸。 对蛋白质序列进行聚类和划分,已被证明是解析蛋白质序列的重要工具,因为蛋白质之间往往存在源自共同进化起源的同源性。为避免数据泄露和过拟合,聚类时通常希望增大训练集与保留评估集内部的同类相似性,而在划分任务中则往往需要控制甚至降低训练集与评估集之间的相似性。多序列比对(MSA)是一类对齐与聚类方法,可用于评估未知序列的分子系统发育关系,并估计序列之间的进化相似性与分化程度。 蛋白质语言模型: ESM(Evolutionary Scale Modeling):通过掩码重建学习特定氨基酸出现在序列中的概率,从原始序列中捕获共进化和残基间接触信息 ProteinBERT:与 ESM 类似的蛋白质语言模型 除这类纯序列预训练模型外,原文还提到像HPNN这样的表示,会在每个残基上附加一个向量,用来表示其对其他残基的注意力,因此更接近结合序列与结构关系的信息表示,而不只是标准的蛋白质语言模型。 数据划分策略 由于SMILES的非唯一性以及大型数据集中的固有冗余,有意义地划分数据以避免机器学习模型的过拟合非常重要。常用的划分策略包括: 简单划分:确保相同的化合物不会同时出现在训练和测试折中 骨架划分:MoleculeNet实现的基于二维结构框架划分数据的方法 相似性划分:考虑分子相似性的更鲁棒的划分方法 拓扑模态(二维) 拓扑模态利用扩展的成键信息,或直接采用分子图像的形式,来表示分子中的原子及其局部环境。这类表示通常与向量化机器学习模型或基于图像的机器学习模型配套使用。 二维指纹 二维指纹包括扩展连接信息,主要分为两类: 结构密钥是编码不同化学基团存在与否的二进制字符串。MACCS keys(也称为MDL keys)是二维结构密钥的流行例子,包含166个密钥,每个密钥编码分子中的特定结构特征或原子排列。 哈希指纹是从分子图映射的物理化学或结构属性的编码向量,可分为: 基于拓扑或路径的指纹:如Daylight指纹 环形指纹:如ECFP和Morgan指纹 ECFP(Extended Connectivity Fingerprints,扩展连接指纹)考虑每个原子的二维圆形环境,直到给定直径。通过选择圆形原子邻域的最大直径值,可以生成不同类型的ECFP。最常用的是直径为4或6,生成ECFP4和ECFP6指纹。ECFP的变体FCFP编码原子的功能或角色。 如果要更直观地理解,ECFP的构造思路可以概括为: 以每个原子为中心,逐层向外看它在二维拓扑上的邻居 设定一个最大直径,决定“看多远”,这就对应ECFP4、ECFP6这类不同版本 把每个局部原子环境编码后汇总,形成整分子的指纹向量 因此,ECFP本质上是在统计“某类局部结构片段是否出现,以及出现了哪些”,只是这里的片段不是人工手写规则,而是围绕原子自动枚举得到的。 二维图像 分子图像主要用于可视化目的,而一些研究工作将其用作AI模型的输入形式。这主要得益于深度神经网络在计算机视觉应用中展现的令人印象深刻的成功。 作为二维图像,分子通常由其骨架结构表示。分子图像的布局和渲染属性的标准化具有挑战性,无论是出于可视化还是基于AI的计算目的。 基于图像的深度学习方法: Chemception:通过深度卷积神经网络(CNN)预测化学性质,与基于专家特征的模型相当 DEEPScreen:类似方法用于DTI预测,药物候选分子图像输入CNN以预测与给定蛋白靶点的二元活性 ImageMol:在1000万个骨架图上预训练的基础模型,随后在 SARS-CoV-2 数据集上微调用于 DTI 预测 空间模态(三维) 空间模态利用分子的坐标信息(因此对构象和对称性敏感),包括距离/接触矩阵、三维指纹、三维分子图和三维图像。使用空间模态的药物发现工作流通常被称为基于结构的药物发现(SBDD)。 距离/接触矩阵 从已知结构构建坐标矩阵以利用三维信息是很自然的。然而,标量属性预测(如亲和力预测、溶解度预测、毒性预测、可合成性预测、蛋白口袋识别等)要求输入数据是旋转和平移不变的(即满足SE(3)对称性),而原始的三维坐标不满足这一要求。 预处理三维坐标以满足SE(3)对称性的一种方法是将坐标转换为距离,从而得到距离矩阵。使用距离矩阵作为特征以及各种神经网络的经验是,连续距离通常比分箱距离表现更差。这一观察体现在文献中分箱距离矩阵的主导地位。 这几种表示虽然都属于距离或接触矩阵,但构造思路并不完全一样: 方法 主要编码对象 怎么算的 直观理解 Distogram(AlphaFold) 残基间距离分布 不直接保留连续距离,而是把β碳原子之间的距离分到若干区间中;以AlphaFold为例,共使用39个cutoff,因此表示成分箱距离分布矩阵 更像“距离落在哪个范围”的概率表示 RF-Score 蛋白-配体粗粒化接触 先把蛋白和配体中的原子都粗粒化为9种常见原子类型,再统计12 Å以内不同原子类型对之间出现了多少次接触,因此最多形成$9 \times 9 = 81$维特征 用有限类型的接触计数近似三维相互作用 OnionNet 多层接触模式 延续按接触数建模的思路,但不是只用一个cutoff,而是在8种原子类型之间引入60个不同截断值,以描述更细的分层接触模式 像把蛋白-配体接触按距离一层层“切片”统计 这些方法的共同点是:先把原始三维坐标转换为更稳定、更适合学习的距离或接触特征,而不是直接把坐标喂给模型。 三维指纹 三维指纹和二维指纹的区别很明显:三维指纹利用二维指纹经常省略的结构信息,考虑原子在三维空间中的空间排列以及它们如何相对定位。 这几种三维指纹最适合放在一起看,因为它们的关键差别就在于“到底把哪一类三维信息编码成特征”。 方法 主要编码对象 怎么算的 直观理解 NNScore 近距离接触、静电作用和配体整体特征 使用194维特征,包含2 Å内氢键接触、4 Å内其他近距离接触、4 Å内静电相互作用能、原子类型计数以及配体可旋转键数 把“接触强不强、近不近、是否有静电作用”这些信息拼成一个三维指纹 ECIF 蛋白-配体原子对接触 把蛋白端22类原子与配体端70类原子两两配对,统计这些原子对在空间中的接触,因此仅接触特征就有$22 \times 70 = 1540$维,另外再叠加RDKit的170个分子描述符 更细粒度的蛋白-配体原子对接触统计 PLIF 蛋白-配体相互作用类型 不只记录“是否接近”,还记录主链氢键、侧链氢键、溶剂氢键、离子相互作用、金属结合、芳环相互作用等事件 更像一张“相互作用事件清单” E3FP 配体三维局部环境和立体化学 借鉴ECFP,但不是围绕原子看二维圆形邻域,而是看三维球形邻域,并通过把球体划分为八分体来编码立体化学信息 可以看作ECFP的三维版本,重点是显式保留立体信息 三维图像 虽然对人类来说不容易理解,但三维图像可以看作是二维图像对计算机的扩展。注意三维图像不是旋转不变的,因此不满足SE(3)对称性。在实践中,数据通常通过图像的旋转作为初始输入进行增强。 三维图像这几类方法很适合并排看,因为它们的核心差别就在于“体素里到底存了什么信息”。 方法 空间离散方式 通道或特征设计 主要任务 Ragoza et al. 24 × 24 × 24 Å 网格,分辨率 0.5 Å 按 smina 原子类型把蛋白和配体原子画到类RGB通道中 蛋白-配体相互作用预测 DeepSite 16 × 16 × 16 体素网格 8个通道对应化学性质,而不是具体原子类型 蛋白结合位点预测 Pafnucy 体素网格 每个原子附加19类描述特征,再映射到体素表示 蛋白-配体结合亲和力预测 如果进一步看它们“怎么算”: Ragoza et al.:先把蛋白和配体复合物离散到三维网格中,再根据 smina 原子类型把原子投影到不同通道;体素占据程度由结合高斯项和二次项的密度函数决定,并结合原子的空间位置和范德华半径来计算 DeepSite:同样先把空间切成体素,但8个通道不再表示具体原子类型,而是表示疏水性、芳香性、氢键受体、氢键供体、正离子化、负离子化、金属原子以及排斥体积。原文还提到,体素占据值是结合原子范德华半径,通过指数形式计算的 Pafnucy:不是只问“这个体素里有没有原子”,而是进一步给原子附加19类属性特征,例如原子类型、杂化、重原子价、杂价、疏水性、芳香性、氢键供受体、环原子、部分电荷,以及它属于配体还是蛋白。也就是说,Pafnucy的体素表示比普通占据图更“富特征” 三维分子图 分子图与早期图神经网络(GNN)方法密切相关,后者最初面向分子、图像以及部分 Web 结构数据等对象。分子图在节点和边中存储信息,节点存储关于所代表单元(原子或残基)的信息,边存储关于连接关系(相邻单元、键类型和键属性等)的信息。 二维和三维分子图的区别在于是否使用三维坐标信息来构建图(在节点或边中)。无向图在当前分子图应用中占主导地位。 这几种分子图方法同样适合表格化,因为区别主要体现在“节点和边里装了什么,以及几何信息怎样进入模型”。 方法 图的类型 节点和边怎么定义 几何信息怎么进入模型 AquaSol 无向二维分子图 节点只包含配体原子类型,边只包含键类型 基本不显式使用三维几何,更像最简图表示 Weave 无向二维分子图 节点有27个描述符,如原子类型、手性、形式电荷、部分电荷、环大小、杂化、氢键和芳香性;边有12个描述符,如键类型、图距离以及两个原子是否同环 仍以二维拓扑为主,不显式编码三维坐标 SchNet 无向三维分子图 节点包含原子属性和笛卡尔坐标信息 不直接生硬使用原始坐标,而是先转成原子间距离,再用径向基函数展开,从而保留几何信息并更容易满足SE(3)对称性 DimeNet 有向三维分子图 在图消息传递中显式考虑原子三元组 在距离之外进一步加入原子三元组之间的夹角,并配合 Fourier-Bessel 基函数,因此比SchNet更强调局部几何构型 从主线上看,AquaSol / Weave 更接近“二维拓扑图怎么编码”,而 SchNet / DimeNet 更接近“如何把三维几何稳定地注入图网络”。进一步说,SchNet 主要编码“距离信息”,而 DimeNet 在距离之外,还进一步显式编码“角度信息”。 时间模态(四维) 时间模态添加时间依赖信息,包括时间序列中的接触、构象时间序列、构象灵活性和熵项。分子动力学(MD)模拟中的时间在估计构象的熵和配体结合动力学中起着关键作用。 时间依赖指纹 MD-IFP利用PLIF和两个动态特征:(1)配体第一溶剂化壳层中的水分子数;(2)配体与参考(结合)位置的均方根位移(RMSD)。这些四维指纹从数十个短MD模拟(1 ps)收集的数百个快照中计算,然后应用k-means聚类。随后的聚类用于计算不同状态的驻留时间,与实验结果有良好相关性。 它的思路可以理解为:先对每个MD快照计算一个“瞬时相互作用指纹”,再把许多快照串起来看其随时间如何变化。相比静态PLIF,MD-IFP多加了两类动态信息: 配体周围第一溶剂化壳层中的水分子数,反映局部溶剂环境 配体相对参考结合构象的RMSD,反映结合姿态是否稳定 随后再对这些时间序列快照做聚类,并用聚类结果估计不同状态的驻留时间。因此,MD-IFP并不是单帧的三维指纹,而是把相互作用模式和动态稳定性一起编码进四维表示。 时间依赖接触矩阵 代表方法: Ribeiro et al.:使用时间依赖接触特征(从RAVE实现的序参数)与变分自编码器架构来选择蛋白-配体相互作用的关键接触特征的线性组合,这些特征随后通过metadynamics验证,以观察通常具有分钟或更长timescale的罕见蛋白-配体解离 CASTELO:构建“时间接触矩阵”,矩阵的一半是时间依赖配体-残基接触数矩阵,另一半是从t到t + δ的接触数增量矩阵,与无监督卷积变分自编码器(CVAE)和HDBSCAN聚类方法配对,识别分子中被认为不稳定的热点区域 时间依赖图 MD-Graph:提出基于MD轨迹的时间依赖图,其中每一帧由一个连接图表示,该连接图由二维配体图和具有12个截断距离的三维蛋白-配体相互作用图连接而成,预测的softmax值在所有帧上平均以计算损失函数,这些MD-图随后用GCN训练以预测HLA-肽复合物免疫原性 表1:分子表示方法快速参考 数据模态 子类别 代表方法 关键特征 序列模态(一维) 小分子字符串 SMILES, SELFIES, InChI, MolFormer 紧凑高效,利用NLP技术 蛋白质序列 ESM, ProteinBERT 蛋白质语言模型,捕获共进化信息 拓扑模态(二维) 二维指纹 MACCS, ECFP, Morgan 固定长度向量,快速计算 二维图像 Chemception, DEEPScreen 类似CNN处理视觉图像 二维图 AquaSol, Weave 节点和边存储原子和键信息 空间模态(三维) 距离/接触矩阵 AlphaFold (Distogram), RF-Score, OnionNet 分箱距离,粗粒化接触 三维指纹 NNScore, ECIF, PLIF, E3FP 包含空间排列和相互作用信息 三维图像 DeepSite, KDEEP, Pafnucy 体素网格,需要数据增强 三维图 SchNet, DimeNet, GemNet 满足SE(3)对称性,消息传递机制 时间模态(四维) 时间依赖指纹 MD-IFP 驻留时间与实验相关 时间依赖接触矩阵 Ribeiro et al., CASTELO 序参数,识别热点区域 时间依赖图 MD-Graph MD轨迹的图表示 知识图谱 知识增强学习 OntoProtein, KeAP, ProtST 整合GO功能、生物医学文本 多模态知识图谱 OtterKnowledge, BioBridge 跨模态对齐,归纳学习 多模态融合 早期/中期/后期融合 GraphMVP, MDeePred, CPAC 聚合不同模态的嵌入 知识图谱 积累的科学知识是知情决策构建的基础,特别是在生命科学和治疗学领域。科学数据分散在多个来源,本质上是异构的,涵盖多组学数据、公开可用的知识库、实验、药理学测量、临床数据和科学文献。 知识图谱正逐渐成为一种关键工具,它不仅能整合来自异构来源的丰富事实知识,也有助于推动多模态学习。通过利用图拓扑(关系),知识图谱可以帮助对齐不同模态的嵌入空间。 知识图谱的基本概念 知识图谱可以形式化描述为有向标注图$G = (V, E)$,其中顶点或具有唯一标识符的节点代表感兴趣的现实世界实体(如蛋白质、基因、化合物、细胞组分、通路),而边代表实体之间的关系(如结合、关联、类型等)或实体的数据类型属性(如分子功能、分子的质量、蛋白质的描述)。这些关系通常以RDF三元组的形式表达,也就是“主体—谓词—客体”这样的结构化关系句。例如,“药物X—作用于—蛋白Y”就是一个最简单的三元组例子。 知识图谱嵌入 在图表示学习中,研究者利用图的拓扑结构(实体及其关系)学习紧凑的向量嵌入,使具有相似特征的节点在向量空间中彼此靠近。评分函数用于衡量三元组在知识图谱中的合理性,真实三元组得分较高,错误或损坏的三元组得分较低。这些优化后的嵌入随后可用于训练各种下游任务模型。 传统知识图谱嵌入模型(KGE)通常是直推式的,不太适合归纳链接预测。这里的链接预测,指的是预测两个实体之间是否应该有一条关系边。这在药物发现场景中至关重要,因为涉及训练期间未见过的节点的预测。 归纳图神经网络方法非常适合通过几何关系捕获跨模态依赖和异构实体类型之间的多样化相互作用类型。它们能够以归纳方式学习实体(对于该实体,许多边可能作为其他实体的主体和客体存在)、边或子图的表示。 知识增强的表示学习 代表方法: OntoProtein:将基因本体GO(包含基因功能信息)的综合文本数据注入到用于序列的预训练蛋白质语言模型(PLM)中,通过重建掩码氨基酸来微调PLM,同时最小化蛋白质的上下文表示与相关GO功能注释之间的嵌入距离 KeAP:比OntoProtein更细粒度的token级方法,其中非掩码氨基酸迭代查询相关知识token以收集信息(来自GO)以通过交叉注意力恢复掩码氨基酸 ProtST:采用由生物医学文本中的文本属性描述增强的蛋白质序列数据集,联合训练PLM和生物医学语言模型 多模态知识图谱 OtterKnowledge和BioBridge是利用多模态知识图谱整合不同来源、不同模态知识的代表性归纳方法。两种方法都先用预训练的单模态模型计算各模态的初始嵌入,再学习如何在多模态知识图谱中完成不同模态之间的转换或融合,同时保持这些单模态基础模型参数固定。 代表方法: OtterKnowledge:从实体本身及其相邻实体中任意数量、任意组合的已知模态出发,学习图中每个实体的表示。知识图谱仅在训练阶段使用,而在推理阶段,这些知识增强后的预训练模型可直接用于下游机器学习任务,以提高预测准确性 BioBridge:在训练期间基于 PrimeKG 对单模态模型或单模态基础模型的嵌入空间进行跨模态对齐。它使用蛋白质、分子、生物过程、分子功能、细胞组分和疾病等实体类型之间的三元组,并将信息归为三种模态:蛋白质序列、SMILES,以及其他实体类型对应的自然语言描述 多模态融合策略 数据模态的选择 药物发现涉及探索极其庞大的候选物空间。AI可以通过预测和生成模型发挥关键作用,用于在进入昂贵实验之前缩小最有希望的候选物(例如可以与靶蛋白结合的小分子)。利用预测和生成模型进行候选物生成的关键在于学习蛋白质靶点、分子和疾病等实体的有效表示。 目前尚无共识认为哪种数据模态能带来普遍更优越的模型性能。一个假设是任务(如二级结构预测)可能需要分子表示和机器学习算法的特定组合以获得优化性能。要找出哪种组合是最优的,提供公正的基准测试过程以比较数据模态和机器学习算法至关重要。 高维不一定更好: 分子建模启发的三维指纹和代数拓扑启发的三维指纹尚未被时间模态实现 时间作为一个额外维度,尚未系统地证明对预测任务有帮助 即使三维图可以看作是二维指纹(存储在节点中)和三维指纹(存储在边中)的组合,三维图可能并不总是优于其组成的二维/三维指纹 多模态融合方法 如果把前面的单模态表示看成不同的信息入口,那么这里讨论的就是这些入口如何在模型里会合。下图概括了本文讨论最多的几条路径。 graph TB A["单模态输入<br/>序列、拓扑、空间、时间"] --> B["模态编码器<br/>得到各自嵌入"] B --> C["早期融合<br/>先拼接特征再建模"] B --> D["中间融合<br/>先学单模态表示,再学联合表示"] B --> E["后期融合<br/>先独立预测,再组合决策"] B --> F["知识图谱增强<br/>把实体关系和属性一起纳入"] C --> G["下游任务<br/>性质预测、亲和力预测、DTI、生成"] D --> G E --> G F --> H["跨模态对齐<br/>补充结构化知识"] H --> G 非知识图谱方法的多模态融合 Stahlschmidt et al. 将多模态融合策略分为三类: 早期融合:简单连接每个输入数据模态的向量作为输入 中间融合:先学习每个模态各自的表示以捕获模态内相关性,再在潜在空间中融合这些表示以学习联合表示 后期融合:组合每个模态的子模型所做的决策 早期融合示例: Zhang et al.:使用多模态深度信念网络(DBN)结合一维序列、二维指纹(特定二级结构)和三维指纹(三级结构)以预测RNA结合蛋白的结合偏好 GraphMVP:通过对比学习结合二维配体图和三维几何图,从二维图重建三维图,从而连接模态 中间融合示例: MDeePred:在深层潜在空间中结合二维配体指纹(ECFP4)和基于一维蛋白质序列的能量矩阵表示 CPAC:结合基于一维蛋白质序列的表示(HPNN)和三维蛋白质图 Jones et al.的研究比较了不同融合方法,结合三维图像和三维图与各种融合策略,其中早期融合策略在亲和力预测任务上优于其他方法,而后期融合策略平均表现与中间融合策略相当。 挑战与未来方向 重用传统QSAR描述符用于深度学习任务 一维和二维模态(如SMILES和二维指纹)已被QSAR方法广泛使用并已适应深度学习算法。然而,三维或更高维的描述符(如CoMFA、CoMSIA、G-WHIM和VolSurf)在深度学习相关研究中较少使用(显著少于三维图和三维指纹)。 作者怀疑,这是由于传统QSAR领域和新兴深度学习领域之间的“知识壁垒”造成的,其原因可能包括付费软件带来的使用门槛、难以获取或高度领域化的文档,以及两个研究社区之间不够理想的交流。尽管如此,作者也认为这一问题有望随着领域发展而逐步缓解。 MD轨迹在机器学习任务中的最佳实践 4D-QSAR和四维模态的机器学习任务面临类似问题——包含多个分子构象的数据集相对罕见。因此,MD模拟(以及其他模拟)提供了理想替代方案来补充数据稀缺性。 如上所述,目前时间依赖的机器学习主要集中在聚类和MD特征学习上。对于预测任务,CASTELO使用聚类结果之间的比较指标并利用来自MD轨迹的分子灵活性信息预测分子中的热点。MD-Graph在聚合结果以进行免疫原性预测之前用GCN处理每一帧。 这两种方法都可以归类为“后期融合”方法,假设四维模态学习是一个多模态融合问题。因此,探索四维模态的早期融合和中间融合策略将是有趣的。此外,收集MD轨迹相对耗时。构建MD轨迹数据库将有助于四维模态的机器学习的进一步发展。 将知识整合到现有模型中需要更高效和可扩展的框架 挑战在于将从许多来源提取和编码的信息融合到向量表示中,并将大量知识有效注入机器学习和大型语言模型中,这可能反过来帮助探测或提供LLM输出的来源。 这需要实现高效且可扩展的训练与推理框架,能够处理大规模知识,包括规模(即三元组数量)和异构性(即词汇表规模、关系类型和属性类型的复杂性)。知识图谱存储的管理,包括演化和维护,本身也是一个活跃研究方向,其性能在生物医学场景中也已有系统研究。 然而,缺乏原生支持不同模态和/或基于该模态计算嵌入的图存储。大型多模态知识图谱对所有基于嵌入的链接预测技术都具有挑战性;多模态嵌入并不显著更差,因为它们被视为额外的三元组。尽管如此,多模态编码器/解码器的训练成本更高。通常需要批处理、分区和采样等技术进行训练,例如在OtterKnowledge中使用GAS方法扩展训练。 探索超越语言和视觉的多模态研究 虽然多模态知识图谱研究主要集中在语言(文本)和视觉(图像)上,但需要深入研究跨不同模态和领域的多模态研究,特别是对于药物发现。 此外,这可能涉及具有多个目标的多任务训练,如链接预测和数值回归,以及实现多模态补全模型,从更广泛的模态谱中生成缺失的多模态信息,例如文本属性、蛋白质序列或图像。这不仅需要结合编码器来学习用于链接预测的多模态嵌入,还需要神经解码器根据知识图谱中的信息生成缺失的多模态属性。 将学习表示泛化到多个下游任务 将已学习到的表示泛化到多个下游任务,需要开发鲁棒的训练技术,使模型能够对具有未见模态或缺失模态的实体进行预测,这在药物发现中很常见。这既包括把预训练阶段得到的嵌入迁移到多个下游任务,也包括分析训练阶段与后续任务阶段的数据可用性差异会如何影响模型表现。 一个关键方面涉及分析预训练期间可用的数据与后续任务期间可用的数据之间的差异如何影响下游任务。在训练期间,可能与蛋白质或药物相关联许多(多模态)属性,而在下游微调期间,可能需要推断只有氨基酸序列和SMILES可用的蛋白质或配体的属性。 多模态融合问题面临的1 + 1 < 2挑战 如果目标是在多模态融合中实现叠加式的预测增益,那么每个模态最好在其信息空间中彼此正交。但这在现实中几乎不可能做到。一个简单反例就是 AlphaFold,它可以仅凭一维蛋白质序列预测三维蛋白质结构。换句话说,一维蛋白质序列与三维蛋白质结构之间本身就共享了足够多的信息。 然而,这种相关性对大多数机器学习算法并不透明,因此最终常常只带来“轻微增量”的性能提升。若想进一步提高预测能力,一个关键问题是:如何在尽量提供更多信息的同时,减少不同模态之间的冗余。假如描述蛋白-配体复合物的所有可能模态都已被纳入,那么问题就转化为一个更工程化的优化过程,即选择合适的模态组合以及与之兼容的机器学习算法。 模态崩溃是训练数据中的不平衡和标签呈现长尾分布的挑战,即一小部分标签常见,有大量训练样本,而大多数标签不频繁甚至从未出现过。此外,分子的结构模态可能为表示学习提供有价值的见解,但某些模态(如三维图像)的稀疏性可能导致收益相对较小。 一个潜在问题是模态崩溃,即在多模态融合或知识图谱训练过程中,只有一部分最有帮助的模态占据主导地位,导致模型过度依赖这些模态,而忽视其他模态的信息。这种学习过程中的不平衡,或某些模态数据不足,都可能导致次优表示。此外,多模态数据质量不佳,以及来自多个来源的知识图谱本身稀疏且不完整,也都可能引入偏差。 跨未对齐异构数据集的学习表示 当在具有略有不同模式的数据库上依次训练模型时,可能会发生灾难性遗忘;模型在从新数据库学习时可能会忘记它在前一个数据库中学到的所有内容。 源模式之间的对齐不是一个小问题,即使一个数据源中的关系可能与另一个数据源中的关系共享一些相似性;由于它们不完全相同,不可能将它们视为相同类型的关系。这阻碍了模型在没有明确强制机制的情况下有效地传递这两个关系之间的共性。 为了解决这个问题,OtterKnowledge采用集成方法来处理分别在未对齐的知识图谱上训练的预训练模型。然而,集成方法并不实用,因为需要的模型数量随着数据库数量的增长而增长。设计一种动态学习方法,使得模型能够学习跨具有不同模式的数据源进行传递,是一个开放的研究问题。 预训练模型的基准测试和可解释性 这强调了对公开可用的基准和排行榜的需求,以评估使用不同模态的预训练模型的有效性。如果没有标准化的基准,就很难客观地评估跨模态模型与现有单模态模型在各种任务上的性能比较。 尽管MoleculeNet、ChEMBL、DUD-e、DrugBank和BindingDB等数据集已由本章综述的研究用作基准,但已发现数据集偏差导致模型偏差,从而产生误导性结果。持续的数据库维护以及资助持久性竞赛(如CASP、CAPRI、CAFA和D3R)非常重要。 此外,模型输出的可解释性缺乏限制了它们的实际适用性。基于注意力的GNN已被用于增强分子性质预测的可解释性。对于知识图谱,一个有趣的研究方向是探索知识图谱嵌入模型和神经符号方法如何增强模型决策背后的可解释性或理解。 关键结论与未来展望 主要贡献 本文系统性地梳理了药物发现中的分子表示方法,提出了基于蛋白质结构层次的四维模态分类体系,为理解和选择分子表示提供了一个更统一的物理框架。从序列到时间,从单模态到多模态融合,从数据驱动到知识增强,这一领域的表示方法正在持续扩展。 方法学进展 表示学习的演进:从人工设计的QSAR描述符到数据驱动的深度学习表示,再到大规模预训练的基础模型,分子表示的表达能力和泛化能力不断提升 多模态融合的多样化:早期融合、中间融合和后期融合策略各有优势,选择需要考虑具体任务和数据特性 知识增强的前景:知识图谱为整合异构数据源和领域知识提供了有效途径,OtterKnowledge和BioBridge等方法展示了知识增强表示学习的潜力 基础模型的崛起:MolFormer、ESM等基础模型在海量数据上预训练,并在多个下游任务中展现出较强的迁移能力 挑战与局限 模态选择的困境:缺乏明确的指导原则来选择适合特定任务的数据模态,高维表示不一定带来更好的性能 多模态融合的复杂性:信息冗余、模态崩溃、长尾分布等问题限制了多模态融合的有效性 知识整合的难度:高效可扩展的知识增强框架仍在发展中,跨未对齐数据集的学习表示是开放问题 评估标准的不统一:缺乏标准化的基准测试和评估体系,不同研究之间难以公平比较 可解释性的不足:深度学习模型的黑箱特性限制了其在药物发现等高风险领域的应用 未来方向 探索新的表示形式:继续挖掘可能被忽视的重要分子表示,特别是传统QSAR描述符和四维模态 优化多模态融合策略:开发能够有效提取正交信息、避免模态崩溃的融合算法 构建高效知识框架:实现大规模知识图谱与深度学习模型的无缝集成,支持知识的注入和推理 建立统一评估体系:开发标准化基准和评估指标,促进不同方法的公平比较 增强模型可解释性:结合神经符号方法、注意力机制等提高模型透明度,建立可信AI 打破领域壁垒:促进传统计算化学与现代深度学习领域的交流与合作,加速方法创新 药物发现中的分子表示学习是一个快速发展的领域。随着新方法的涌现和旧方法的重新审视,结合合适的领域知识、模态组合和算法设计,机器学习辅助药物发现仍有很大的发展空间。
Machine Learning & AI
· 2026-03-27
整合qHTS与QSAR:筛选hERG风险较低的GPCR先导化合物
整合qHTS与QSAR:筛选hERG风险较低的GPCR先导化合物 本文信息 标题:整合qHTS和QSAR模型以识别安全的GPCR靶向化合物:关注hERG依赖性心脏毒性 作者:Xi Luo, Jinghua Zhao, Srilatha Sakamuru, Menghang Xia, Tuan Xu, Jameson Travers, Carleen Klumpp-Thomas, Hu Zhu, Matthew D. Hall, Stephen S. Ferguson, David M. Reif, Ruili Huang 发表时间: 2026年2月17日 单位: 美国国家推进转化科学中心(NCATS)、北卡罗来纳大学等(美国) 引用格式: Luo, X., Zhao, J., Sakamuru, S., Xia, M., Xu, T., Travers, J., Klumpp-Thomas, C., Zhu, H., Hall, M. D., Ferguson, S. S., Reif, D. M., & Huang, R. (2026). Integrating qHTS and QSAR Models to Identify Safe GPCR-Targeted Compounds: A Focus on hERG-Dependent Cardiotoxicity. Journal of Chemical Information and Modeling, 66(7), 2474–2487. https://doi.org/10.1021/acs.jcim.5c02291 相关工具:ChemoTyper(ToxPrint chemotypes)https://github.com/mn-am/chemotyper 摘要 G蛋白偶联受体是七跨膜受体家族,通过G蛋白介导细胞外信号转导,在多种生理和神经过程中发挥关键作用。ADRB2、CHRM1、DRD2和HTR2A等重要GPCR靶点,与哮喘、精神分裂症等疾病的治疗密切相关。然而,许多靶向GPCR的药物会抑制hERG钾离子通道,导致QT间期延长,也就是心电图上反映心室去极到复极全过程的时间变长,并增加心律失常风险。本研究整合定量高通量筛选和基于机器学习的定量结构活性关系模型,采用不同的数据处理顺序预测hERG风险较低的选择性GPCR靶向化合物。模型在Tox21 10K化合物库上训练,经LOPAC数据集,即Library of Pharmacologically Active Compounds,外部验证,随后用于虚拟筛选约36万个多样化化合物,并对预测排名靠前的化合物进行实验验证,发现了多个hERG风险较低的新型GPCR调节剂。 核心结论 hERG毒性普遍存在:在GPCR活性化合物中,尤其是拮抗剂模式中,hERG抑制剂的占比接近或超过50%的GPCR活性拮抗剂,强调在GPCR药物开发中监测hERG抑制的重要性 双模型策略有效:Model 1和Model 2都能给出稳定预测,最优模型的AUC-ROC可达AUC-ROC值0.84以上 共识模型成功筛选:使用四种ML算法(RF、SVM、NB、XGB)的共识策略筛选1408个CHRM1预测活性化合物,实验验证显示激动剂PPV达阳性预测值0.72,拮抗剂PPV达阳性预测值0.91,hERG模型的NPV为阴性预测值81.6% 发现新型先导化合物:鉴定出多个具有微摩尔级活性的CHRM1激动剂和拮抗剂,且hERG抑制较弱,说明这套流程适合用于早期候选物优先级排序 背景 G蛋白偶联受体是最大的细胞表面受体家族,跨越细胞膜七次,通过细胞外环与配体结合,通过细胞内环与G蛋白相互作用。GPCR在各种生理和神经过程中至关重要,是哮喘、阿尔茨海默病、帕金森病、精神分裂症等多种疾病的治疗靶点。例如,β2肾上腺素受体激动剂如沙丁胺醇用于治疗哮喘,毒蕈碱乙酰胆碱受体M1激动剂如占诺美林可改善阿尔茨海默病的认知功能,多巴胺D2受体激动剂如普拉克索用于帕金森病,5-羟色胺受体2A拮抗剂如氯氮平用于精神分裂症。 然而,许多靶向GPCR的药物与心脏毒性副作用相关,这主要归因于它们对hERG(human Ether-à-go-go-Related Gene)钾离子通道的抑制作用。hERG编码Kv11.1,是延迟整流钾通道快速组分的α亚基,对心脏复极化至关重要。抑制hERG通道会导致QT间期延长。这里的QT间期,指的是心电图中从Q波起点到T波终点的一段时间,可粗略理解为心室完成一次电活动所需的时间。这个时间一旦拉长,就会增加尖端扭转性室性心动过速等严重心律失常的风险,可能进展为室颤和猝死。因此,hERG抑制是药物淘汰和市场撤市的主要原因,FDA要求几乎所有新的低分子量药物都必须进行“全面QT”研究以评估其对QT间期延长的影响。在药物开发早期识别hERG抑制对于预防心脏毒性、提高药物安全性、确保监管合规和优化药物开发过程至关重要。 定量高通量筛选是一种强大的工具,可用于识别各种分子靶点的新型先导化合物。Tox21计划应用qHTS测试了约10000个药物和环境化学物质(Tox21 10K化合物库),涵盖约80个体外实验,包括核受体、应激反应通路、GPCR以及其他毒性相关靶点。重要的是,扩展的Tox21实验组合还包括专门的hERG通道抑制实验,提供了关键心脏毒性终点的直接测量。Tox21实验数据已用于构建毒性预测模型以及识别疾病靶点的新型先导化合物。 基于机器学习的定量结构活性关系模型是传统湿实验室实验的实用且有效的替代方案,已被用于虚拟筛选大型化学库,以识别GPCR激动剂、拮抗剂以及hERG抑制剂。qHTS实验数据为开发ML模型提供了稳健的数据集,用于预测小分子对不同靶点,如GPCR与hERG的活性和选择性。先前研究已经报道,ML模型可以成功识别具有GPCR活性和hERG抑制活性的分子。然而,设计用于识别GPCR活性化合物的机器学习模型也可能同时选出抑制hERG的候选物。因此,需要在药物发现早期优先考虑兼具GPCR活性和较低hERG风险的虚拟筛选方法。 关键科学问题 GPCR药物的心脏毒性风险:许多靶向GPCR的药物会抑制hERG通道,导致QT间期延长和心律失常,如何在药物开发早期有效识别和排除hERG抑制剂? 选择性预测的挑战:如何构建能够同时预测GPCR活性和hERG抑制的机器学习模型,以筛选出具有选择性的安全先导化合物? 数据不平衡问题:在GPCR活性化合物中,hERG抑制剂的比例很高(尤其是拮抗剂),如何处理这种数据不平衡并训练稳健的分类模型? 模型泛化能力:如何确保模型在化学结构多样的化合物库中保持良好的预测性能,并成功应用于外部验证和大规模虚拟筛选? 创新点 双模型策略:提出两种不同的建模策略,Model 1分别为8个GPCR靶点和hERG构建独立模型,Model 2在构建GPCR模型前排除hERG抑制剂,系统比较了两种策略的性能 整合qHTS与QSAR:利用Tox21 10K化合物库的qHTS数据构建ML模型,结合ECFP4指纹和多种ML算法,实现了从高通量筛选数据到虚拟筛选的有效转化 共识模型筛选:采用四种ML算法(RF、SVM、NB、XGB)的共识策略筛选约36万个化合物,并通过严格的hERG排除阈值0.3(预测概率≥预测概率阈值0.3)降低心脏毒性风险 实验验证成功:对模型预测的CHRM1活性化合物进行实验验证,发现了多个具有微摩尔级活性且无明显hERG抑制的新型先导化合物,验证了模型的实用性 研究内容 本研究整合定量高通量筛选和机器学习QSAR模型,旨在开发能够预测选择性GPCR靶向化合物,即hERG风险较低候选物的计算方法。研究针对四个重要的GPCR靶点,即ADRB2、CHRM1、DRD2和HTR2A的激动剂和拮抗剂模式,采用两种不同的数据建模流程,即Model 1和Model 2构建分类模型,通过Tox21 10K化合物库的qHTS数据训练,LOPAC数据集外部验证,最终应用于NCATS内部约36万个化合物的虚拟筛选,并对预测排名靠前的化合物进行实验验证。 方法详述 数据来源 Tox21 10K化合物库包含8599个独特化合物,其中约3000个为获批药物。研究通过qHTS获得四个GPCR靶点,即ADRB2、CHRM1、DRD2和HTR2A的激动剂与拮抗剂活性数据,以及hERG通道抑制数据。每个化合物都在15个浓度下进行三重复测试。 数据处理流程 曲线分级:根据浓度-响应曲线观察到的形状分配类别(1.1-1.4和2.1-2.4为活性,3为活性,4为非活性) 曲线秩次:转换为-9到9之间的整数,秩次越高表示曲线质量、效力和有效性越高。抑制剂分配负秩次,激活剂分配正秩次 活性判定:基于平均曲线秩次和三次重复实验的重现性,将化合物分配为“活性激动剂/拮抗剂”、“非结论性激动剂/拮抗剂”、“非结论性”或“非活性” 图1:模型构建和外部验证的数据集与框架 图1A:hERG抑制剂(橙色段)在八个数据集的活性GPCR化合物中的分布(包含橙色和蓝色段的柱子),包括ADRB2、CHRM1、DRD2和HTR2A的激动剂和拮抗剂 图1B:GPCR实验数据中活性和非活性化合物的分布 图1C:两种ML模型使用的数据集中活性和非活性化合物的分布,Model 1分别为8个GPCR靶点和hERG构建独立模型,Model 2从GPCR活性化合物中排除hERG抑制剂 图1D:外部验证数据集(LOPAC)中活性和非活性化合物的分布 图1E:虚拟筛选约36万个多样化化合物并对选定的预测进行实验验证的流程 这张图把整篇文章的逻辑压缩得很清楚。图1A先说明问题本身,即活性GPCR化合物里混有大量hERG抑制剂;图1C再展示两种建模流程的差别;图1D和图1E则对应外部验证与大规模虚拟筛选,基本就是全文的方法主线。 双模型建模策略 本研究采用两种不同的建模流程来预测选择性GPCR靶向化合物: graph TB subgraph S2["Model 2:预先排除策略"] direction TB B1["Tox21 10K数据集"] B2["识别hERG抑制剂<br/>并从GPCR活性中排除"] B3["8个GPCR数据集<br/>已排除hERG抑制剂"] B4["训练8个GPCR模型<br/>只包含非hERG抑制剂的GPCR活性化合物"] B5["预测GPCR活性<br/>默认低hERG风险"] B1 --> B2 B2 --> B3 B3 --> B4 B4 --> B5 end subgraph S1["Model 1:分别建模策略"] direction TB A1["Tox21 10K数据集"] A2["8个GPCR数据集<br/>ADRB2/CHRM1/DRD2/HTR2A<br/>激动剂+拮抗剂"] A3["hERG抑制剂数据集"] A4["独立训练9个模型<br/>8个GPCR模型 + 1个hERG模型"] A5["独立预测<br/>GPCR活性 + hERG抑制"] A1 --> A2 A1 --> A3 A2 --> A4 A3 --> A4 A4 --> A5 end Model 1采用分别建模策略,为8个GPCR靶点和hERG构建独立的分类模型,优点是灵活性高,可根据实际需求调整GPCR活性和hERG毒性的权重。Model 2采用预先排除策略,在训练GPCR模型前先排除hERG抑制剂,直接训练选择性模型,优点是简化后续筛选流程。通过对比两种策略,可以系统评估先识别活性、再剔除hERG风险与直接训练选择性模型的优劣。 分子描述符 ECFP4(Extended Connectivity Fingerprints 4)为1024位指纹,编码局部原子环境,如原子类型、芳香性、环成员、杂原子和键序,用来捕获常见亚结构特征。 机器学习算法 算法 作用特点 朴素贝叶斯 概率分类器,假设特征之间相互独立 随机森林 集成学习方法,通过多棵决策树投票得到结果 支持向量机 通过寻找最优超平面拉开不同类别间隔 XGBoost 梯度提升树方法,迭代优化分类误差 模型评估 项目 设置 交叉验证 5折分层交叉验证,重复10次 性能指标 AUC-ROC、平衡准确率、马修斯相关系数 类别平衡 在训练集上使用随机欠采样 共识策略 使用四种经过验证的机器学习分类器,即RF、SVM、NB和XGB,在Tox21 10K化合物库上训练并经LOPAC数据集外部验证的模型,对NCATS内部约36万个化学多样性化合物进行虚拟筛选。如果四个模型独立给出的活性概率都高于各自阈值,化合物才会被判定为GPCR活性。 hERG排除 为最大限度降低心脏毒性风险,研究统一使用hERG排除阈值0.3:凡是预测hERG抑制概率大于等于阈值0.3的化合物都会被排除。由于资源限制,最终每个GPCR靶点只保留约2000个候选,优先进入实验的是预测GPCR活性更高、预测hERG风险更低的那一批。 实验验证 基于四种ML模型的预测概率,研究选择模型预测的CHRM1活性化合物进行实验验证。总计测试1408个化合物,其中包括382个预测激动剂和1037个预测拮抗剂,另有12个化合物同时被预测为激动剂与拮抗剂。这些样品随后在CHRM1激动剂模式、CHRM1拮抗剂模式和hERG抑制实验中接受测试。 结果与分析 hERG毒性在GPCR药物中的普遍性 图1A揭示了hERG抑制剂在GPCR活性化合物中的广泛分布。例如,在45个ADRB2活性激动剂中,有13个化合物是hERG抑制剂。在其他GPCR活性化合物中也发现了大量的hERG抑制剂,尤其是在拮抗剂模式实验中,接近或超过50%的GPCR活性拮抗剂也抑制hERG。这种高比例的hERG毒性表明,单纯筛选GPCR活性化合物不足以确保药物安全性,必须同时评估hERG抑制风险。 模型训练性能评估 图2:Model 1(左)和Model 2(右)的性能 使用四种ML算法(NB、RF、SVM和XGB)开发的模型通过受试者工作特征曲线下面积(AUC-ROC)、平衡准确率和马修斯相关系数进行评估 指标报告为10次5折分层交叉验证中各折的平均值±标准差 在每一折中,数据集分为训练和测试子集,对训练数据应用随机欠采样以处理类别不平衡,并通过评估预测概率与测试集对比来计算AUC-ROC、BAC和MCC指标 图2的重点不是某一个单独柱子有多高,而是两个关键观察。 第一,不同算法之间确实有差异,但多数任务都能维持在可用区间,说明数据本身足以支撑分类建模。 第二,Model 2在大多数GPCR任务上的AUC-ROC略高,但这并不自动意味着它在筛掉hERG风险这件事上更好,后面还要结合表2和实验验证一起看。 Model 1与Model 2性能对比 靶点 Model 1最佳算法 Model 1 AUC-ROC Model 2最佳算法 Model 2 AUC-ROC ADRB2激动剂 SVM 0.93±0.03 SVM 0.91±0.07 ADRB2拮抗剂 SVM 0.92±0.02 SVM 0.96±0.02 CHRM1激动剂 NB 0.84±0.04 SVM 0.89±0.04 CHRM1拮抗剂 RF 0.94±0.01 SVM 0.96±0.01 DRD2激动剂 SVM 0.88±0.03 SVM 0.90±0.03 DRD2拮抗剂 SVM 0.92±0.02 SVM 0.94±0.03 HTR2A激动剂 SVM 0.84±0.03 SVM 0.86±0.01 HTR2A拮抗剂 SVM 0.92±0.01 SVM 0.94±0.02 hERG抑制剂 SVM 0.91±0.01 NA NA AUC-ROC结果表明大多数模型表现良好,至少有一种ML方法在每个GPCR靶点上达到AUC-ROC>AUC-ROC阈值0.84,在预测hERG抑制剂时达到AUC-ROC=AUC-ROC值0.90 GPCR的AUC-ROC值范围为AUC-ROC下限0.70至AUC-ROC上限0.94,hERG抑制剂的AUC-ROC值范围为AUC-ROC下限0.81至AUC-ROC上限0.91 SVM在大多数GPCR和hERG分类任务中表现最佳,表明其在处理高维分子描述符方面的优势 模型稳定性:10次迭代的性能指标(表S1)显示高度一致性,支持模型达到稳定性能。BAC和MCC的最优值遵循与AUC-ROC相同的趋势,即当AUC-ROC值较大时,BAC和MCC也显示较大值。 骨架拆分验证 为了评估结构泛化能力,研究使用Bemis-Murcko骨架拆分评估了RF和SVM模型。如预期的那样,基于骨架的分区降低了大多数靶点的AUC,反映了预测新型化学类型活性的难度。 CHRM1激动剂和HTR2A拮抗剂观察到最大的下降,可能是由于这些靶点的活性化合物结构多样性有限,限制了骨架特定特征的可转移性。 相比之下,包括ADRB2和CHRM1拮抗剂以及DRD2激动剂/拮抗剂在内的几个靶点的模型保持了相对较高的AUC(AUC下限0.80至AUC上限0.89),表明更一致的结构-活性关系。 总体而言,骨架拆分分析表明,虽然在严格的骨架分离下性能有所下降,但模型对多个GPCR靶点和hERG抑制保留了有意义的预测能力。 结构冗余评估:在使用Tanimoto系数评估LOPAC外部验证集与训练数据之间的结构冗余后,发现630个LOPAC化合物的Tanimoto系数为1,表明可能是重复化合物。这些高相似性化合物可能会高估外部验证性能,因此研究在计算PPV时排除了这些化合物。 外部验证结果 使用LOPAC数据集(Library of Pharmacologically Active Compounds)作为外部验证集评估了在Tox21 10K数据上训练的模型性能。 表1:基于LOPAC实验的两种建模流程外部验证结果 GPCR Model 1最佳算法 Model 1 PPV范围 Model 2最佳算法 Model 2 PPV范围 CHRM1激动剂 SVM 0.41-1.00 SVM 0.47-1.00 CHRM1拮抗剂 SVM 0.65-0.95 SVM 0.64-0.94 HTR2A激动剂 XGB 0.65-0.90 XGB 0.60-0.90 DRD2拮抗剂 SVM 0.74-0.90 SVM 0.73-0.86 ADRB2拮抗剂 RF 0.58-0.81 RF 0.53-0.76 DRD2激动剂 XGB 0.32-0.69 SVM 0.30-0.73 ADRB2激动剂 SVM 0.54-0.64 RF 0.51-0.68 HTR2A拮抗剂 RF 0.14-0.20 RF 0.14-0.23 hERG抑制剂 SVM 0.93 NA NA 外部验证显示大多数模型表现良好,至少有一种ML方法在每个GPCR靶点上达到PPV>PPV阈值0.64(Model 1)或PPV>PPV阈值0.68(Model 2)。SVM在识别hERG抑制剂方面表现突出,Model 1的SVM达到PPV为0.93。值得注意的是,由于原始LOPAC集合中只有5个HTR2A拮抗剂,研究添加了49个经验证的其他活性物质使总数达到54个,产生了更可靠的PPV。 表2:GPCR激动剂与拮抗剂的平均hERG抑制效力 原文的表2比较了不同靶点、不同模式下化合物的平均hERG抑制强度,以 -LogAC50 表示。这个表很关键,因为它回答的不是谁的分类分数更高,而是模型挑出来的分子到底是不是更不容易打到hERG。 靶点 模式 Active Inactive Model 1 active Model 1 active(hERG-inactive only) Model 2 active ADRB2 激动剂 4.32 ± 0.54 4.14 ± 1.00 4.17 ± 0.35 4.12 ± 0.31 3.61 ± 1.99 ADRB2 拮抗剂 4.63 ± 0.63 4.07 ± 1.00 4.73 ± 0.80 4.16 ± 0.42 4.75 ± 0.88 CHRM1 激动剂 4.24 ± 1.09 4.15 ± 0.96 4.27 ± 0.54 4.00 ± 0.00 4.24 ± 0.51 CHRM1 拮抗剂 4.58 ± 0.82 4.03 ± 0.98 4.79 ± 0.66 4.08 ± 0.27 4.65 ± 0.68 DRD2 激动剂 4.31 ± 0.41 4.15 ± 1.00 4.35 ± 0.40 4.17 ± 0.30 4.33 ± 0.40 DRD2 拮抗剂 4.36 ± 1.37 4.05 ± 0.65 4.93 ± 0.75 4.20 ± 0.41 4.92 ± 0.81 HTR2A 激动剂 4.44 ± 1.05 4.06 ± 0.92 4.39 ± 0.51 4.15 ± 0.29 4.53 ± 0.61 HTR2A 拮抗剂 4.32 ± 0.73 4.16 ± 0.97 4.68 ± 0.89 4.17 ± 0.92 4.20 ± 0.75 这张表支持了文中的一个重要判断:GPCR活性化合物,尤其是拮抗剂,平均来看往往伴随更强的hERG抑制;而在Model 1中先用hERG模型做排除,通常能把预测命中的hERG抑制强度再往下压一截。换句话说,Model 2在若干分类指标上略占优,但Model 1在先识别活性、再剔除hERG风险这条路线下,对降低hERG负担更直接。 实验验证结果 图3:模型预测的CHRM1激动剂/拮抗剂的实验验证 图3A-C:代表性强效CHRM1激动剂的结构和浓度-响应曲线,绿色曲线表示CHRM1活性,红色曲线表示hERG活性 图3D-F:代表性CHRM1拮抗剂的结构和浓度-响应曲线,绿色曲线表示CHRM1活性,红色曲线表示hERG活性 图3是全文最重要的落地证据。前三个例子显示,模型不仅能找到CHRM1激动剂,而且这些化合物的绿色曲线与红色曲线明显分开,说明CHRM1活性先出现而hERG作用较弱。后三个拮抗剂例子也传达同样的信息,即真正值得继续推进的,不只是有活性,而是活性与hERG风险之间有窗口。 CHRM1激动剂验证 指标 结果 第一轮测试数量 382个预测CHRM1激动剂 确认为活性 274个 PPV 阳性预测值0.72 强效激动剂 103个,$\mathrm{EC50} < 10~\mu\mathrm{M}$ 代表化合物1 NCGC00642171-01,$\mathrm{EC50} = 1.06 \pm 0.10~\mu\mathrm{M}$ 代表化合物2 NCGC00525960-01,$\mathrm{EC50} = 1.68 \pm 0.50~\mu\mathrm{M}$ 代表化合物3 NCGC00657555-01,$\mathrm{EC50} = 4.21 \pm 1.23~\mu\mathrm{M}$ 这部分结果说明,模型在激动剂方向上的主要价值是把极低的原始命中率显著拉高,并且挑出了一批后续值得进入确认实验的候选。 CHRM1拮抗剂验证 指标 结果 第一轮测试数量 1037个预测CHRM1拮抗剂 确认为活性 945个 PPV 阳性预测值0.91 确认后仍活跃且无显著hERG抑制 66个 强效抑制 34个化合物,$\mathrm{IC50} < 5~\mu\mathrm{M}$ 更强一档 10个,$\mathrm{IC50} < 1~\mu\mathrm{M}$ 已知CHRM1拮抗剂 6个 hERG例外 riboflavin tetrabutyrate 与 NCGC00449480 拮抗剂结果比激动剂更亮眼,尤其体现在PPV上。这也和前面的数据分布一致,即CHRM1拮抗剂数据集本身更大、更容易学到稳定的结构信号。 hERG选择性预测性能 使用阴性预测值(NPV)评估时,TN指在hERG实验中未显示抑制,或hERG抑制效力至少比CHRM1活性低3倍的化合物;FN指以与CHRM1活性相似或更高效力抑制hERG的化合物。总体而言,模型预测化合物在hERG抑制实验中的命中率为命中率18.4%,对应hERG模型的NPV为阴性预测值81.6%。这个结果不能理解成“几乎没有hERG风险”,但足以说明它能把原始化合物库中大量潜在hERG抑制剂预先筛掉。 关键结论与批判性总结 主要贡献 本研究把qHTS数据、QSAR建模、外部验证和后续实验确认串成了一条完整流程。通过比较Model 1与Model 2,作者表明活性预测和hERG风险控制可以被同时纳入同一个筛选框架。对约36万个化合物的虚拟筛选及CHRM1实验证明,这套流程确实能提高命中率,并在一定程度上降低hERG相关风险。实验验证结果显示,ML模型可用于识别具有最小hERG抑制的潜在GPCR药物,模型在识别具有最小hERG抑制的新GPCR靶向化合物方面表现良好。这些模型预测的GPCR靶向化合物为实验测试和进一步开发为药物先导化合物提供了优先级排序的候选列表,为开发更安全的GPCR靶向疗法提供了框架,强调了平衡疗效和心脏安全性的策略需求。 方法学优势 双模型策略:Model 1提供了GPCR与hERG的独立预测,Model 2则把去除hERG抑制剂这一步提前到了建模阶段,两者侧重点不同。根据模型去除hERG抑制剂能力的评估,分别为GPCR靶点和hERG构建的独立模型在去除hERG抑制剂方面比从训练数据中预先排除hERG抑制剂的模型更有效 共识模型:四种ML算法联合决策,减少了单一模型偶然命中的影响。与CardioGenAI和CToxPred2等先进hERG责任框架相比,本研究的分类模型(特别是XGB和SVM)表现出更高的特异性(特异性范围0.98-0.99)和更强的平衡准确率(XGB=平衡准确率0.77,SVM=平衡准确率0.75) 实验闭环:不是停留在交叉验证或外部验证,而是进一步做了CHRM1与hERG实验确认,发现了多个具有微摩尔级活性的新型CHRM1激动剂和拮抗剂,且大多数CHRM1激动剂和拮抗剂对hERG抑制的影响较小(hERG实验中IC50>IC50阈值6.2μM) 可解释比较:不仅比较分类指标,还用表2直接比较了命中化合物的hERG抑制强度,为模型选择提供了定量依据 局限性 仅验证CHRM1:由于资源限制,研究仅对CHRM1预测化合物进行实验验证,其他GPCR模型(ADRB2、DRD2和HTR2A)的实验验证性能可能不同,且一些预测为非活性的化合物可能实际上是活性的(即假阴性) 体外实验依赖性:研究仅应用了一种体外实验方法来生成GPCR靶点和hERG的数据以训练和测试模型,这些实验本身存在假阳性和假阴性率,模型质量因此依赖于实验的技术和生物学可靠性。例如,CHRM1激动剂模式实验的确认率相对较低 单一心脏毒性终点:研究仅考虑了hERG依赖性心脏毒性,未考虑来自其他潜在途径的心脏毒性效应 骨架泛化能力:骨架拆分验证表明模型在预测新型化学类型时性能下降,在某些GPCR靶点(如CHRM1激动剂和HTR2A拮抗剂)观察到最大下降,可能是由于这些靶点的活性化合物结构多样性有限 未来方向 扩展验证范围:对其他GPCR靶点(ADRB2、DRD2、HTR2A)的预测化合物进行实验验证,评估模型在不同靶点上的泛化能力 多目标优化:探索同时考虑GPCR活性、hERG抑制与其他ADMET性质的多目标筛选策略,优化hERG排除阈值以适应不同GPCR靶点和项目阶段的风险容忍度 数据来源多样化:尝试更丰富的分子表示方法和更广的训练数据来源,提升模型对新骨架的外推能力 多心脏毒性终点整合:除了hERG依赖性心脏毒性外,还应考虑来自其他潜在途径的心脏毒性效应,构建更全面的心脏安全性预测框架
Machine Learning & AI
· 2026-03-22
零代码玩转化学信息学CADS平台整合:DOPtools实现从分子结构到性质预测的全流程自动化
零代码玩转化学信息学CADS平台整合:DOPtools实现从分子结构到性质预测的全流程自动化 本文信息 标题: 整合DOPtools与CADS的网页用户界面,用于结构描述符计算、模型优化与预测 作者: Philippe Gantzer, Micke Kuwahara, Keisuke Takahashi, Pavel Sidorov 发表时间: March 19, 2026 单位: 日本北海道大学化学反应设计与发现研究所(ICReDD)、北海道大学化学系 引用格式: Gantzer, P., Kuwahara, M., Takahashi, K., & Sidorov, P. (2025). Integration of DOPtools and CADS in a Web-Based User Interface for Structural Descriptor Calculation, Model Optimization, and Prediction. Journal of Chemical Information and Modeling. https://doi.org/10.1021/acs.jcim.5c03055 代码与平台: CADS平台在线访问:https://cads.eng.hokudai.ac.jp CADS源代码:https://github.com/Material-MADS/mads-app (revision 84f74c3及以上) DOPtools库:https://github.com/POSidorov/DOPtools 摘要 定量构效关系(QSPR)建模通常需要在不同工具间切换来完成描述符计算和模型构建,这对缺乏编程经验的实验科学家构成了障碍。本研究将DOPtools——一个专门用于分子描述符计算和模型构建的Python库——无缝整合到CADS(基于数据科学的催化剂获取)平台中。这一整合使得用户无需编写代码,即可通过网页界面完成从分子结构(SMILES编码)到描述符计算、再到模型超参数优化和性质预测的全流程。新增功能包括:支持分子结构的2D可视化、自动化超参数优化(基于Optuna)、批量预测能力,以及通过ColorAtom模块实现的模型可解释性可视化(展示每个原子对预测结果的贡献)。该平台支持私有数据部署,为化学、材料和药物研发领域提供了开放、可定制且用户友好的QSPR建模解决方案。 核心结论 无缝整合:将DOPtools的11种描述符计算能力和机器学习模型优化功能嵌入CADS的网页界面,用户无需编程即可完成复杂建模任务。 自动化建模流程:支持从SMILES字符串自动计算分子描述符、进行超参数优化(支持SVM和随机森林),并自动选择最优模型。 模型可解释性:集成ColorAtom功能,可在预测结果上叠加原子级别的贡献热图(绿色表示增加性质值,紫色表示降低),帮助用户理解模型决策。 私有数据友好:CADS平台开源且支持本地服务器部署,适合处理敏感或专有化学数据。 性能稳健:在ddG性质预测任务中,500次优化尝试即可达到R² ≈ 0.85,且预测1000个分子仅需约45秒。 背景 在药物发现、催化剂设计和材料开发中,从分子结构预测其性质(如溶解度、血脑屏障穿透性、反应选择性等)是核心任务之一。传统的实验筛选方法成本高、周期长,而定量构效关系(QSPR)建模通过建立分子结构与性质之间的数学关系,提供了一种高效的替代方案。 然而,QSPR建模的落地面临三重障碍:计算描述符需要编程(如RDKit、Mordred等库需通过Python调用)、模型优化需要机器学习专业知识(超参数调优、交叉验证等)、工具链碎片化(描述符计算、模型训练、预测往往需要多个独立软件)。尽管已有像KNIME、Pipeline Pilot这样的图形化工作流平台,但它们通常需要本地安装,计算能力受限于个人电脑,且难以处理敏感数据。而网页平台如OCHEM虽然免安装,但多为闭源,无法部署在本地网络。 正是在这一背景下,CADS平台应运而生。它最初是为催化剂数据科学设计的开源网页平台,支持数据管理、分析和预测。但其早期版本不支持分子描述符的自动计算,也不具备模型超参数优化功能。本研究将DOPtools——一个同样由该团队开发的Python库——整合进CADS,填补了这一空白。 DOPtools技术架构:该库基于成熟的化学信息学工具链构建,包括Chython(1.78版本)用于结构解析、RDKit(2024.9.5版本)用于分子操作、scikit-learn(1.6.1版本)用于机器学习,以及Optuna(4.2.1版本)用于超参数优化。支持的算法包括支持向量机、随机森林和XGBoost(命令行版本),模型可保存为标准的scikit-learn pipeline格式,便于复用和部署。 这种整合实现了优势互补:DOPtools作为“引擎”提供强大的计算能力,CADS作为“驾驶舱”提供友好的用户界面,使得用户可以在网页上完成从分子结构输入到模型部署的全流程,无需编写一行Python代码。 图1:CADS平台总体架构概览 图中将平台分成两个互补部分:服务器端负责计算、存储和任务执行,客户端提供面向用户的图形界面。 这张图的意义在于先交代整个平台的分工,再去理解后面新增的“含分子的表格”“描述符”“优化器”和预测模块升级各自落在哪一层。 从工作流角度看,DOPtools主要嵌入在服务器端的数据处理与建模链条中,而CADS负责把这些能力组织成可交互、可管理、可部署的网页组件。 创新点 零代码分子描述符计算:用户只需上传包含SMILES列的CSV文件,即可通过网页表单选择描述符类型(如Morgan指纹、RDKit指纹、Mordred 2D描述符等),后台自动调用DOPtools和RDKit完成计算。 一体化模型优化:在同一个网页组件中,用户可完成“描述符计算 → 超参数优化 → 模型保存”的完整流程,无需在多个工具间切换。 原子水平模型解释:预测页面集成ColorAtom,以2D分子图形式展示每个原子对预测值的贡献(绿色为正贡献,紫色为负贡献),使黑箱模型透明化。 灵活的数据输入:不仅支持分子结构,还支持溶剂名称(自动匹配物化性质)和用户自定义数值特征,适配多种建模场景。 性能基准公开:论文提供了详细的性能测试数据(不同尝试次数、交叉验证折数下的时间与R²),为用户评估计算资源需求提供参考。 研究内容 核心方法:平台架构与工作流 CADS平台采用客户端-服务器架构,前端基于React提供交互界面,后端使用Django框架和Python脚本执行计算任务。本次整合主要新增了三个核心组件和一个预测模块的升级。 图2:含分子的表格组件和描述符组件的数据处理展示 左侧“含分子的表格”组件将SMILES文本编码的结构转换为2D分子图,便于用户直接检查分子或反应条目是否被正确解析。 右侧“描述符”组件从SMILES编码的结构(包括R基团和反应)以及溶剂名称自动计算描述符值,并以表格形式展示结果。 初始数据来自Tsuji等人的数据集,包含分子、溶剂和相关性质,仅用于演示目的。 1. 含分子的表格组件 核心功能:将数据表中SMILES编码的分子或反应式转换为2D结构图(SVG格式) 实现方式:利用Chython库解析SMILES并生成矢量图,支持任意缩放而不失真 应用场景:在建模前快速检查数据质量,或建模后查看预测效果较好的分子结构 数据管理:支持三级访问权限控制 权限级别 访问范围 适用场景 私有 仅上传者和指定用户可访问 企业专有数据、未公开研究结果 内部 平台所有注册用户可访问 实验室内部共享数据 公开 所有人可访问 公开数据集、已发表研究数据 这种灵活的权限管理使得平台既能处理公开数据集,也能安全地管理企业或实验室的专有数据。 2. 描述符组件 核心功能:从SMILES自动计算分子描述符,生成特征表。支持的11种描述符类型: 类别 描述符名称 可调参数 指纹类 Morgan指纹 位数 指纹类 Morgan特征指纹 最大半径 指纹类 RDKit指纹 位数 指纹类 RDKit线性指纹 最大长度 指纹类 RDKit分层指纹 无 指纹类 Avalon指纹 位数 指纹类 Atom Pair指纹 无 指纹类 Torsion指纹 无 碎片类 ChyLine碎片 最小/最大长度 碎片类 Circus碎片 最小/最大半径 全描述符 Mordred 2D描述符 计算超过1800种2D分子描述符 输入灵活性 支持SMILES字符串作为输入格式,这是化学信息学最通用的文本表示方式 对于反应体系,支持SMILES CGR(缩合图表示)格式 可同时输入溶剂名称,自动匹配152种溶剂的Catalán物化性质描述符 支持用户自定义外部数值特征,扩展性极强 这里的“溶剂”并不是所有任务都必须提供的输入列,而是一个可选的上下文特征。当目标性质本身会随着实验介质变化时,平台可以把溶剂名称映射为Catalán参数,让模型同时学习分子结构与反应/测量环境对结果的共同影响;在ddG这类反应选择性任务中,这一点尤其重要。 在特征计算阶段,DOPtools会自动跳过无法计算的分子(如包含非标准元素的SMILES),并在日志中记录错误。平台会自动移除方差为零的特征(即所有分子在该特征上的值相同),因为这些特征对模型没有区分能力。用户也可以在建模前通过“描述符”组件预览特征表,手动检查是否存在异常条目或不合理特征。输出为一张包含所有特征和性质列的表格,用户可下载为CSV用于其他分析。 3. 优化器组件(分回归和分类两个版本) 这是本次整合的核心,将DOPtools的模型优化能力以表单形式呈现给用户。 配置流程(以回归任务为例) 描述符设置:与“描述符”组件相同,选择要计算的特征类型 建模设置: 选择目标列(要预测的性质) 选择算法:支持支持向量回归(SVR)和随机森林回归(Random Forest) 设置交叉验证折数(如3、5、10折)和重复次数(如3、5、10次) 可选留出一部分数据作为外部测试集,用于独立评估;不过论文正文只说明了平台支持这一功能,并未展开具体的切分方式或默认设置 保存模型:优化完成后,可将最佳模型(按交叉验证平均R²最高选择)保存到服务器,供后续预测使用 优化算法详解 DOPtools底层使用Optuna框架进行超参数搜索,采用k-fold交叉验证策略来评估每组参数的性能 交叉验证支持多次重复,以减少数据划分随机性带来的偏差,确保评估结果稳健 对于SVR,搜索空间包括C值(1e-9到1e9)、核函数(线性、RBF、多项式、sigmoid)等 对于随机森林,搜索空间包括最大深度(3–10)、树的数量(20–200)、最大特征选择方式等 模型选择标准:回归任务选择交叉验证平均R²最高的模型,分类任务选择平衡准确率最高的模型 关于XGBoost:论文明确给出两层限制。第一,DOPtools 1.2的方法表中注明,由于实现层面的技术困难,XGBoost当前在网页GUI中被禁用;第二,正文又补充说,在当前CADS版本里,XGBoost仍可通过DOPtools命令行版本使用,但不在网页优化器中开放,因为其优化和训练耗时更长。作者同时指出,未来版本有望重新接入这一算法。 4. 升级的预测模块 本次更新不仅增强了预测功能,还引入了智能输入验证机制,确保预测过程的鲁棒性。 特性 说明 输入方式 用户可一次性提交多个分子(每行一个),格式与训练时特征顺序一致(如“SMILES 溶剂名 数值特征”) 智能验证 服务器端Python脚本会自动检查每行输入:验证字段数量、确认SMILES有效性和溶剂名称存在性、自动跳过无效行 输出内容 预测值列表,可选“预测并着色”功能生成ColorAtom热图直观显示原子贡献 批量性能 预测1000个分子约需45秒(在16核服务器上) 数据安全 模型保存时引入了input_type元数据字段,自动识别所需的输入类型,防止用户误用模型 ColorAtom的作用 ColorAtom会把模型预测结果映射回2D分子结构,用原子级着色来展示不同原子对预测值的相对贡献,从而提供一种更直观的模型逻辑可视化。在平台层面,它的价值在于把原本难以阅读的数值预测转成化学家更容易理解的结构图,帮助用户快速判断哪些局部结构更可能推动性质升高或降低。 至于ColorAtom更底层的理论与实现,论文主要通过引用Marcou等人的原始工作加以说明,而没有在本文中展开算法推导。 图4:使用Huuskonen等人溶解度数据集构建的模型进行预测 SMILES列和Real列显示用户提供的输入信息及可选的真实值。 Predicted列给出模型预测值。 ColorAtom列展示对应SMILES的2D分子图,其中绿色原子表示对预测性质有增加作用,紫色原子表示对预测性质有降低作用,颜色深浅反映相对贡献大小。 数据仅用于演示目的。 案例演示与结果分析 论文用三个数据集展示了平台的核心功能,我们逐一解读。 案例一:ddG性质预测(回归任务) Tsuji等人2023年发表的手性催化剂数据集包含反应条件、溶剂和产物对映选择性。这里的 ddG 指的是与对映选择性相关的自由能差,文中具体建模的目标列名为 ddG calib (C=0.05),单位为 kcal/mol。 描述符选择理由:CircuS碎片(大小0到3)能够同时捕捉局部与全局结构特征,特别适合手性催化剂这类骨架较复杂的体系;溶剂描述符则量化了介质的极性、酸碱性等物化性质,对反应选择性有重要影响。 算法选择理由:支持向量回归(SVR)在中小样本量下表现稳健,且对高维特征空间不敏感。 交叉验证策略:采用3次重复、每次10折,目的是降低随机划分带来的偶然性,提高模型评估的可靠性。 优化尝试次数:设置为500次,在精度与计算时间之间取得平衡。 图3a展示了优化后的模型在交叉验证训练集上的预测值与真实值散点图。点越靠近对角线,模型越准确。从图中可见,大部分点落在对角线附近,说明模型具有较好的拟合与泛化表现。经过500次优化尝试后,$R^2$ 约为0.86,而RMSE和MAE也保持在较低水平,说明平台已经能够在网页端稳定完成一轮像样的回归建模。用户还可以通过鼠标悬停查看每个点的详细信息,点击后在其他组件中联动高亮对应结构,这使得异常点分析不再需要来回切换工具。 图3:优化器组件运行后的界面展示 (a)回归优化器组件展示使用Tsuji等人数据预测ddG性质的最佳模型性能。散点图显示交叉验证中预测值与真实值的对应关系,右侧列出模型详细信息和验证指标。 (b)分类优化器组件展示使用Roy等人数据集预测血脑屏障穿透性的最佳模型。左侧为ROC曲线,其中深蓝色表示平均曲线,浅蓝色表示各次重复曲线;右侧显示模型参数和验证指标(如平衡准确率、AUC),类别1被视为正类。 案例二:血脑屏障穿透性预测(分类任务) Roy等人2019年发布的数据集,分子被标记为“可穿透”或“不可穿透”。 算法选择理由:随机森林分类器(RFC)天然适合处理分类任务,且对特征缩放不敏感,能自动处理特征之间的交互作用。 评估指标选择理由:平衡准确率(Balanced Accuracy,即两类召回率的平均值)能更好地处理类别不平衡问题,避免模型偏向多数类。 可视化工具:ROC曲线和AUC提供了模型在不同阈值下的综合性能概览。 图3b展示了ROC曲线。曲线越靠近左上角,模型区分正负类的能力越强。图中同时显示了每次交叉验证重复的ROC曲线(浅蓝色)和平均曲线(深蓝色),因此读者不仅能看到平均表现,还能直观看到重复之间的波动范围。相比普通准确率,平衡准确率更适合这类潜在类别不平衡任务;论文也正是用它作为交叉验证重复平均后的模型选择标准。AUC则提供了另一个角度的佐证:从平均ROC曲线位置看,模型具备较好的类别区分能力。 案例三:溶解度预测与原子贡献可视化 Huuskonen等人2000年发表的溶解度数据集,包含多种有机化合物。 描述符选择理由:Mordred 2D描述符覆盖了超过1800种分子特征,包含拓扑、电子和理化性质等多个维度,适合用来做这类通用小分子性质建模。 算法选择理由:随机森林回归对高维特征空间具有较好的适应性,同时也便于后续解释。 ColorAtom价值:对于溶解度这类常常受局部官能团影响的性质,原子贡献可视化尤其直观。 用户在预测页面输入SMILES后,选择“Predict and color”,即可得到预测值和一个带颜色的分子结构图(图4)。其中,绿色原子表示对预测溶解度有正向贡献,紫色原子表示有负向贡献,颜色深浅反映相对贡献大小。这里最重要的 punchline 是平台把预测值和结构解释放到了同一个界面里:用户不只知道模型给了什么答案,还能快速看到答案主要来自分子的哪些局部结构。不过这种解释仍然更适合作为启发式线索,而不是直接替代化学机理判断。 下图展示了从数据上传到模型预测的完整工作流: graph TB subgraph S1["1.数据准备"] direction TB A1["上传CSV文件<br/>(含SMILES列、性质列)"] A2["数据管理模块<br/>(私有/内部/公开)"] end subgraph S2["2.特征计算与可视化"] direction TB B1["含分子的表格组件<br/>SMILES转2D结构图"] B2["描述符组件<br/>选择11种描述符类型<br/>自动计算特征"] end subgraph S3["3.模型优化"] direction LR C1["优化器组件<br/>选择算法"] --> C2["设置交叉验证"] --> C3["Optuna超参数优化"] --> C4["保存最佳模型"] end subgraph S4["4.模型预测与解释"] direction LR D1["预测模块<br/>批量输入分子"] --> D2["ColorAtom原子贡献热图<br/>绿色↑ 紫色↓"] --> D3["导出预测结果CSV"] end S1 --> S2 --> S3 --> S4 style A1 fill:#e1f5ff style A2 fill:#e1f5ff style B1 fill:#fff9c4 style B2 fill:#fff9c4 style C1 fill:#ffe0b2 style C2 fill:#ffe0b2 style C3 fill:#ffe0b2 style C4 fill:#ffe0b2 style D1 fill:#c8e6c9 style D2 fill:#c8e6c9 style D3 fill:#c8e6c9 性能基准测试 论文附录提供了详细的性能测试数据(基于16核Intel Xeon Silver 4314服务器),帮助用户预估计算资源需求: 表ST1:不同 Optuna 超参数尝试次数下的回归模型性能(Tsuji 数据集中的 ddG calib (C=0.05) 性质) 尝试次数 平均 R² 平均时间(秒) 时间范围(秒) 50 0.835±0.012 68±5 63–72 100 0.840±0.012 93±21 66–133 250 0.854±0.003 170±14 158–197 500 0.862±0.004 324±16 308–351 1000 0.861±0.003 623±17 604–653 解读:这里的“尝试次数”指的是 Optuna 在超参数优化过程中评估了多少组参数。当尝试次数从50增加到500时,$R^2$ 从0.835提升到0.862,但计算时间也从68秒增加到324秒。继续增加到1000次后,性能几乎不再提升,说明大约500次尝试已经接近收益平台期。这组结果给出的核心信息不是“越多越好”,而是网页端建模同样需要考虑精度与时间的平衡。 表ST5:不同测试集规模下的批量预测耗时(使用保存的模型) 测试集大小 10 100 1000 3000 平均时间(秒) 0.46±0.009 5.22±0.06 44.9±0.1 133.6±0.1 解读:这里的“10、100、1000、3000”指的是待预测条目数,也就是通过重复Tsuji数据集的外部测试集得到的 TEST SIZE,并不是优化尝试次数。按这一设置,1000条输入约需45秒,3000条约需133秒,整体呈近似线性增长。这说明平台已经能支撑中等规模的批量预测,至少不会卡在“一次只能点一个分子”的演示级阶段。 关键结论与批判性总结 平台价值 CADS与DOPtools的整合显著降低了QSPR建模的技术门槛,使实验科学家能够更专注于化学问题,而不是被脚本、依赖和模型封装细节绊住。 私有部署这一点很关键,它让平台既保留了网页工具的便利性,又能适配敏感或专有数据场景,补上了很多公共在线平台做不到的一环。 ColorAtom可视化的价值不只是“好解释”,而是把预测结果直接投回结构层面,让模型输出更接近化学家真正会使用的工作语言。 局限性 网页端算法支持仍有限:虽然DOPtools本身支持SVM、随机森林和XGBoost,但当前网页GUI中XGBoost仍被禁用,这会限制部分任务的性能上限。 平台论文更偏功能展示而非系统 benchmark:文中通过三个案例说明组件可用,但并没有在多数据集上系统比较不同描述符或算法组合的优劣,因此它更像“可用性证明”,而不是通用性能排名。 适用域仍待补齐:作者在结尾明确提到未来希望引入Applicability Domain功能;这说明平台虽然已经能做预测和可解释性展示,但对“哪些预测值得信任”的提示仍不充分。 未来方向 引入Applicability Domain:作者明确点名了Fragment Control、Bounding Box以及基于距离的方法(如leverage)作为未来可接入CADS的平台能力。 增加新描述符与新算法:论文在结尾明确提到,未来DOPtools若加入新的描述符和机器学习算法,这些能力也可以继续整合进CADS。 扩展平台的高级建模能力:随着DOPtools后续演进,CADS有望持续扩展其面向化学信息学工作流与模型构建的功能边界。 小编锐评: 看来主要还是好在训练过程有界面,没有真去弄性能,那跟我还是有差距。 前面处理之类的技术细节还是可以借鉴下人家的,比如:方便地对新分子进行预测、设置交叉验证折数和重复次数等
Machine Learning & AI
· 2026-03-21
生成式主动学习+物理模拟:AI与精准计算协力加速新药设计
生成式主动学习+物理模拟:AI与精准计算协力加速新药设计 本文信息 标题: Optimal Molecular Design: Generative Active Learning Combining REINVENT with Precise Binding Free Energy Ranking Simulations 作者: Hannes H. Loeffler, Shunzhou Wan, Marco Klähn, Agastya P. Bhati, Peter V. Coveney 发表时间: 2024年9月 单位: AstraZeneca分子AI部门(瑞典)、伦敦大学学院计算科学中心(英国) 引用格式: Loeffler, H. H., Wan, S., Klähn, M., Bhati, A. P., & Coveney, P. V. (2024). Optimal Molecular Design: Generative Active Learning Combining REINVENT with Precise Binding Free Energy Ranking Simulations. Journal of Chemical Theory and Computation, 20(19), 8308–8328. https://doi.org/10.1021/acs.jctc.4c00576 摘要 主动学习(AL)是一种序列实验设计策略,利用机器学习智能地选择需要评估的下一批分子结构,有效模拟实验室中的设计-制造-测试-分析循环(DMTA)。本研究描述了一个将生成式分子AI与物理精算绝对结合自由能计算(REINVENT与ESMACS)相结合的主动学习框架,称为生成式主动学习(GAL)。在全球首台超算Frontier上,该协议成功发现了两个靶点(3CLpro和TNKS2)的新型高效配体,这些分子不仅结合亲和力超越初始模型,而且化学空间分布完全不同,显示了物理约束与AI生成的协同优势。通过系统改变批大小参数,研究提供了不同应用场景下的最优效率建议。 核心结论 GAL框架的有效性:在两个差异化靶点上,生成式主动学习都能成功发现结合亲和力更优的新分子,且化学结构多样性高 批大小的关键影响:对于开放型结合口袋(3CLpro),小批大小(n=250)效率更高;对于封闭型口袋(TNKS2),较大批大小能提升精度但增加计算成本 快速收敛特性:TNKS2仅需3-4次迭代即可收敛,3CLpro需5-7次,远低于传统虚拟筛选 物理精算的必要性:Docking评分与ESMACS相关性极弱,表明物理计算对驱动高质量分子生成至关重要 代理模型质量与靶点结构的耦合:靶点口袋的约束性越强,代理模型预测精度越高,GAL整体效率越优 背景 药物发现中的计算加速困境 传统的药物发现遵循设计-制造-测试-分析循环(DMTA),这是一个迭代、缓慢、昂贵的过程。每次设计新化合物都需要实验评估,周期长达数月,投入巨大。计算机辅助药物设计(CADD)应运而生,但面临核心难题: 虚拟库规模爆炸:商业库动辄数百万甚至数十亿化合物,传统虚拟筛选无法遍历 评估函数精度不足:Docking等快速评分方法与实验关联性差(本研究中Spearman相关系数仅0.08) 化学空间探索有限:固定库只能覆盖已合成分子,无法发现新颖性强的化合物 采样-精度的平衡:高精度方法(如MM-PBSA)计算昂贵,难以大规模应用 主动学习的理论基础 主动学习(AL)打破了被动数据标注的枷锁。其核心思想是:不盲目标注海量数据,而是智能地选择最具信息价值的样本进行昂贵计算,逐步优化代理模型。在药物发现中,AL的逻辑链条是: Oracle(预言者):精准但昂贵的计算方法(如分子动力学结合自由能计算) 代理模型:快速但精度有限的机器学习模型(如神经网络QSAR) 获取函数:智能选择下一批候选化合物的策略 迭代优化:循环运行,逐步收敛到高质量分子 生成式AI与强化学习的融合 传统AL依赖固定库池,而REINVENT引入了生成式前沿:通过强化学习(RL),该模型能够即时生成满足目标属性的新型化合物,不受合成库限制。这意味着: 化学空间无限:从分子图表示(SMILES)生成,理论上可探索所有可合成分子 先验知识驱动:预训练的“先验”模型被RL逐步微调向目标方向 评分函数驱动:多个评分项(结合亲和力、药物性、合理性)加权聚合 关键科学问题 本研究旨在回答药物发现实践中的根本问题: 能否在主动学习框架中有效整合生成式AI和物理模拟?两种范式(快速生成 vs. 精准评估)的协同效果如何量化? 批大小如何影响效率(每轮提交多少化合物给Oracle)?小批高迭代 vs. 大批低迭代,孰优孰劣? 靶点结构特征对GAL性能的影响程度有多大?开放vs.封闭的结合口袋是否导致截然不同的行为? 在超算上实现的GAL是否具有实际药物发现价值?生成的分子是否真正新颖且可合成? 创新点 首个完整的GAL范式展示:在药物发现领域系统展示生成式AI(REINVENT)与物理精算(ESMACS)的端到端整合,非概念验证而是实战应用 超算尺度的实现:在Frontier(全球首台艾字节级超算)上部署,单次迭代仅需50分钟墙钟时间评估数百化合物,计算量~2毫秒 系统的批大小分析:首次在两个代表性靶点上对比5种不同批大小(100-1000),给出精度-效率权衡的定量建议 靶点结构的影响揭示:通过对比开放型(3CLpro)和封闭型(TNKS2)结合口袋,深入讨论了蛋白质约束性对代理模型质量和GAL收敛的直接影响 真实新颖性验证:生成分子与原始库的Tanimoto相似度<0.13,证明了真正的结构创新而非模式复制 研究内容 方法论框架:GAL工作流 该研究建立的GAL循环由四个关键组件组成: graph TB subgraph Oracle["Oracle(预言者)"] direction LR ESMACS["ESMACS<br/>10副本MD模拟<br/>4 ns/副本<br/>~5分钟/化合物<br/>精准结合自由能"] end subgraph Surrogate["代理模型"] direction LR ChemProp["ChemProp神经网络<br/>5折交叉验证<br/>5个集成模型<br/>快速亲和力预测"] end subgraph Generator["分子生成器"] direction LR REINVENT["REINVENT强化学习<br/>古典先验模型<br/>300-500次迭代<br/>每轮生成100-1000分子"] end subgraph Acquisition["获取策略"] direction LR Clustering["聚类-贪心策略<br/>Butina算法<br/>Tanimoto相似度>0.5<br/>每簇选最优分子"] end Oracle -->|ΔG结果| Surrogate Surrogate -->|更新模型| REINVENT REINVENT -->|生成新化合物| Acquisition Acquisition -->|筛选批次| Oracle style ESMACS fill:#e3f2fd style ChemProp fill:#f3e5f5 style REINVENT fill:#e8f5e9 style Clustering fill:#fff3e0 工作逻辑:每一轮GAL包括 (1) 评估当前批次的化合物结合亲和力→ (2) 用真实数据更新代理模型→ (3) 用强化学习生成新批次→ (4) 通过聚类和贪心策略选择最有潜力的子集→ (5) 循环回到第1步。 图1:生成式主动学习的整体工作流 GAL框架从右上方开始:ESMACS评估一组化合物的结合亲和力,将结果与其ΔG值用于更新ChemProp代理模型(右下)。REINVENT利用古典强化学习先验和经过更新的ChemProp评分函数,通过内层强化学习优化循环在左边生成新分子,外层是主动学习算法本身。新生成的候选物通过Butina聚类和贪心选择策略筛选,再回到评估步骤。 两个代表性靶点的对比 3CLpro(SARS-CoV-2主蛋白酶) 靶点特征:大型开放结合口袋,允许多种配体结合模式 初始模型:基于~10,000个Docking评分最优的化合物 测试批大小:250和500分子/轮 迭代轮数:7轮 总Oracle调用:3,500和1,750次 关键结果: 代理模型初期精度低(Spearman ρ~0.1),后期恢复到0.62(n=250)和0.39(n=500) 生成分子结合自由能从初始约-30 kcal/mol逐步改善至-56 kcal/mol(相对于最优种子库提升>5 kcal/mol) 化学多样性保持高水平(平均Tanimoto相似度<0.35),与种子库差异度极大(<0.13) 小批大小(n=250)表现出更高的计算效率(每次Oracle调用发现的结构簇数更多) 图8:3CLpro的GAL效率分析 效率指标定义为每次Oracle调用发现的结构簇数,展示了n=250(绿色)和n=500(蓝色)两种批大小在每轮迭代后的累积效率。小批大小在结构发现效率上明显优于大批大小,特别是在早期迭代阶段。 图2:代理模型精度逐轮改进 对比n=250(绿色)和n=500(蓝色)两种批大小,ChemProp代理模型对ΔG的预测精度逐轮提升。Spearman相关系数从初期0.1恢复到0.62(n=250)或0.39(n=500)。这是3CLpro最关键的指标,反映了数据驱动模型如何逐步学习配体-蛋白复杂关系。 图4:结构多样性与聚类分析 四个子图展示3CLpro的核心演变轨迹: (a) ΔG分布的逐轮改善(绿=n=250,蓝=n=500) (b) Tanimoto相似度分布:内部相似度<0.35,保持高多样性 (c) 结构簇数随迭代递减,表明收敛到少数高质量簇 (d) 生成分子与初始库的相似度<0.13,证明真正的新颖性而非模式复制 图6:化学空间演变(t-SNE可视化) 使用Morgan指纹的t-SNE投影清晰展示: 蓝色:初始种子化合物聚集在紧凑区域 红/橙/黄:生成分子大幅扩展到外围,形成多个分离簇 充分证明了GAL能突破已知化学空间的边界 图5:3CLpro的代表性化学结构 展示从不同结构簇中选择的ΔG最优结合分子。包含8个最丰富的簇以及4个ΔG最低的簇,从ΔG最低的100个化合物中进行聚类分析。这些分子结构展示了GAL发现的化学多样性和新颖性。 这些图表共同展示了3CLpro从困难收敛到逐步优化的全过程。 TNKS2(Tankyrase-2,PARP家族蛋白) 靶点特征:狭窄封闭结合口袋,限制了配体的结合模式多样性 初始模型:基于27个实验验证的同系物(使用QSARtuna随机森林) 测试批大小:100、300、500、700、1,000分子/轮 迭代轮数:4-5轮(快速收敛) 总Oracle调用:较少但更精确 关键结果: 代理模型质量显著优于3CLpro(Spearman ρ > 0.7,R² > 0.6在第1轮后) 仅需单次迭代就实现显著改善(对比3CLpro需多轮) 生成分子结合自由能达-47 kcal/mol(超过所有27个实验验证的种子) 大批大小导致更深的化学空间收敛:n≥500的多轮试验收敛到相同区域,n=700则稍偏移 生成分子中腈基和桥环等特殊取代基被反复发现,表明它们是该口袋的关键优化群体 图10:TNKS2的结合自由能分布 展示不同批大小(100、300、500、700、1000)在选定迭代轮次后的ΔG分布。绿色(batch 0)是初始10,000个种子化合物的分布,可以清楚地看到生成分子(batch 1-5)的分布迅速向低值移动,反映了代理模型的高效性。 图12:TNKS2的代表性化学结构 展示从不同结构簇中选择的ΔG最优结合分子。包含8个最丰富的簇以及4个ΔG最低的簇。可以观察到腈基(-CN)和桥环结构在多个最优分子中反复出现,验证了这些是该结合口袋的关键优化群体。 图9:TNKS2代理模型的快速精准提升 对比n=100、500、1000三种批大小,ChemProp在TNKS2上的表现远优于3CLpro。Spearman相关系数>0.7(vs 3CLpro的0.62),R²>0.6(vs 3CLpro的更低值)。关键差异在于TNKS2的一致性结合模式使得1D SMILES与3D构象有清晰对应。 图11:TNKS2的多维性能分析 四个子图汇总TNKS2的关键演变: (a) 结合自由能分布极速移向低值(单次迭代显著改善) (b) Tanimoto相似度分布宽度增加,表示更多样的结构生成 (c) 结构簇数呈现快速收敛模式(vs 3CLpro的缓慢递减) (d) 与初始27个实验同系物的相似度<0.3,多数为全新支架 图13:TNKS2的化学空间拓展 t-SNE可视化对比3CLpro的多簇分散,TNKS2展现: 黄色:初始10000个种子化合物聚集 浅蓝色:27个实验验证配体占据极小区域 多彩点:生成分子虽然向外扩展,但范围相对集中(反映封闭口袋的约束性) 这揭示了口袋拓扑结构直接决定化学空间探索的广度。 靶点对比的深层洞察: 3CLpro:开放口袋→多种结合模式→代理模型难以学习→需更多迭代 TNKS2:封闭口袋→一致结合模式→代理模型快速精准→少轮次收敛 批大小的效率权衡 研究定义了计算效率指标 $\eta = \frac{N_{CG,\Delta G_{\max}}}{n_{\text{oracle}}}$,其中$N_{CG}$为满足结合亲和力和相似度阈值的结构簇数,$n_{\text{oracle}}$为Oracle调用次数。 通过多场景参数扫描(两个ΔG阈值×两种相似度截断),研究系统评估了不同批大小在多样性探索(hit finding)和亲和力优化(lead optimization)两种应用场景下的表现。 结论: 3CLpro:小批大小(n=250)在所有情景下效率最高 TNKS2:小批大小(n=100)在多数情景下最优,但在严格亲和力条件下n≥500超越 实践建议:当代理模型质量难以预知时,小批大小是更安全的选择(100-250),能在探索和精细化之间取得平衡 代理模型质量的关键因素 TNKS2代理模型显著优于3CLpro的根本原因在于靶点蛋白的结构特性(详见附录的深层分析):封闭口袋建立了SMILES与3D结合姿态的清晰对应,高质量的初始数据来自实验验证,以及明确的优化目标。这与3CLpro的开放结构、Docking初始数据的噪声、以及多模式竞争形成鲜明对比。 关键发现的反思 物理精算的核心价值 本研究的一个重大发现是Docking与ESMACS的巨大差异: Docking评分:Spearman ρ = 0.08(几乎无相关性) ESMACS评分:Spearman ρ = 0.33(中等相关) 为什么这很重要?虽然ESMACS的绝对精度仍有限,但相对排序能力足以驱动强化学习找到更好的分子。物理计算提供的是: 结构-能量关联的物理基础(而非Docking的黑盒碰撞几何) 代理模型的高质量训练信号(相比低质量Docking标注) 规避虚假优化(RL不会因为Docking的任意性而陷入孤立死胡同) 生成式AI的局限性 REINVENT生成分子时知识有限: 不支持立体化学(所有生成分子均无手性中心) 不包含蛋白质结构信息(仅基于配体结构与亲和力) 缺少合成性评估(本研究中某些分子可能难以合成) 这反过来解释了为何代理模型质量至关重要:强化学习需要良好的评分信号来弥补生成器的信息缺陷。 化学空间探索的启示 GAL的一个独特优势是可探索前所未有的化学空间,而非被限制在已知分子的相似性范围内。研究中的t-SNE可视化清晰显示: 初始库(蓝色)聚集在一个紧凑区域 生成分子(红/橙/黄)向外大幅扩展,形成多个分离的簇 不同批大小导致的不同收敛点表明:强化学习的随机性保证了多样性 这对药物发现的意义是:当热点靶点的已知配体陷入某个局部SAR极值时,GAL能自动跳出,在全新化学空间寻找突破。 关键结论与未来方向 主要成就 范式融合:首次在工业规模上展示了生成式AI + 物理精算 + 主动学习的三位一体,打破了各自为政的局面 超算驱动:证明在Frontier级超算上,GAL的墙钟时间与小型实验室规模相当,成本可控 靶点适应性:系统揭示了蛋白质结构约束性对AI-物理协作的深刻影响,提供了定性预测能力 效率量化:为不同应用场景(hit finding vs. lead optimization)提供了批大小选择的定量证据 局限性 合成性未评估:生成分子虽然新颖,但未经Retrosynthesis检验(建议集成AiZynthFinder) 代理模型静态化:未尝试层冻结或持续学习,每轮从零训练(可优化) 超算依赖:50分钟/轮的效率对无超算访问的群体无益(需研发GPU集群优化) 药物性约束薄弱:仅用QED+构象过滤,缺少PK/PD/毒性模块(实际应用需补充)
Machine Learning & AI
· 2026-03-08
可审计的自动化药物分子优化多智能体平台
可审计的自动化药物分子优化多智能体平台 本文信息 标题:An Auditable Agent Platform for Automated Molecular Optimisation 作者:Atabey Ünlü, Phil Rohr, Ahmet Celebi 单位:DeltaWave 期刊:arXiv预印本 发表时间:2025年8月5日 引用格式:Ünlü, A.; Rohr, P.; Celebi, A. An Auditable Agent Platform for Automated Molecular Optimisation. arXiv, 2025, arXiv:2508.03444v1. 摘要 药物发现常常因数据、专业知识和工具的分散而失去动力,减缓了设计循环。为了缩短这一循环,我们构建了一个分层的、工具使用的多智能体框架来自动化分子优化。一个首席研究员定义每个目标,数据库智能体检索靶点信息,AI专家使用序列到分子深度学习模型从头生成骨架,药物化学家在调用对接工具的同时编辑它们,排名智能体对候选分子评分,科学评审监督逻辑的正确性。每次工具调用都被总结和存储,使得完整的推理路径保持可检查。智能体通过简洁的溯源记录进行通信,捕获分子谱系,构建可审计的、以分子为中心的推理轨迹,并通过上下文学习重用成功的转化。 核心结论 多智能体架构在专注优化时表现卓越:在针对单一目标(如结合亲和力)的优化中,多智能体架构将平均预测结合亲和力提高了31% 单智能体架构生成更优的药物样性质:单智能体运行产生的分子具有更优的药物样性质,但代价是结合亲和力得分较低 可审计性是关键优势:与单一大语言模型相比,智能体框架创建了透明的推理轨迹审计跟踪 上下文学习和反馈循环至关重要:测试时缩放、专注的反馈循环和溯源记录将通用LLM转化为分子设计的可审计系统 背景 药物发现常被认为是一个漫长而昂贵的过程,往往需要10-15年和数十亿美元的研发投入。在这个过程的早期阶段,计算化学家需要从头设计新的分子结构,优化它们的药物样性质,并预测它们与生物靶点的结合亲和力。这个流程传统上需要多个专业领域的紧密协作:生物信息学家检索靶点信息,计算化学家运行分子对接模拟,合成化学家评估可合成性,药物化学家平衡多个竞争目标。 然而,这种多学科协作模式存在明显瓶颈:专业知识分散在不同工具和数据库中,数据转移和沟通成本高昂,迭代周期长。即使有了人工智能辅助,目前的AI工具往往是孤立的“黑箱”,缺乏对整个优化流程的系统性协调。 近年来,大语言模型在化学推理和分子设计方面展现出惊人的能力。但如何将LLM的化学知识与专业的计算工具结合,构建一个可解释、可审计、可复现的自动化分子优化流程,仍然是一个开放性问题。 关键科学问题 本研究系统地探索了以下核心问题: 多智能体架构的有效性:相比单一LLM,分工明确的多智能体系统能否在分子优化任务中取得更好表现? 架构设计的权衡:在专注优化单一目标(如结合亲和力)和平衡多个药物性质之间,不同架构如何取舍? 可审计性与透明度:如何让AI系统的推理过程变得可检查、可理解、可复现? LLM的化学推理能力:不同的大语言模型在执行复杂的多步骤分子优化任务时表现如何? 创新点 分层多智能体架构:构建了包含6个智能体和5个工具的分子优化系统 可审计的推理轨迹:每次工具调用和决策都被记录,构建完整的分子谱系和推理路径 系统性的架构对比:在真实药物靶点(AKT1)上系统比较了单一LLM、单智能体和多智能体架构 五大大语言模型评测:对GPT-4.1-turbo、Sonnet-3.7、Sonnet-4、Gemini 2.5 Pro、o3等5个模型进行了全方位评估 研究内容 多智能体系统架构 研究构建了一个分层多智能体系统,在顺序对话模型下运行,旨在自动化从头药物发现的分子优化阶段。该架构由首席研究员智能体协调,该智能体定义高层目标并协调专业下级智能体在顺序工作流中的任务。 图1:多智能体架构。该系统采用6个智能体和5个工具的架构,其中3个工具(UniProt、PDB、ChEMBL)通过单一API调用访问,另外2个(Vina-Mol-Gen和Vina-Report)是复合工作流,将多个工具打包到单次调用中。 系统包括以下六个智能体: 智能体 主要职责 关键工具 首席研究员(Principal Researcher) 定义高层目标,协调任务顺序,启动优化循环 无 数据库智能体(Database Agent) 检索靶点的基础数据 UniProt、PDB、ChEMBL AI专家(AI Expert) 从头生成分子骨架 Prot2Mol深度学习模型 药物化学家(Medicinal Chemist) 编辑分子结构,调用对接工具 Vina-Mol-Gen工作流 排名智能体(Ranking Agent) 综合评分和候选分子排序 Vina-Report工作流 科学评审(Scientific Critic) 监督逻辑正确性,检查科学假设 无 工作流程详解 每个优化循环由首席研究员启动,然后按预定顺序将控制和上下文传递给相应的智能体: 首席研究员定义目标(例如:“优化AKT1抑制剂的结合亲和力”) 数据库智能体从UniProt检索AKT1蛋白信息,从PDB获取结构数据,从ChEMBL收集已知配体 AI专家智能体使用Prot2Mol模型生成从头分子骨架 药物化学家智能体执行多轮迭代优化(详见下) 排名智能体综合所有结果,对候选分子进行排序 科学评审检查逻辑链条,识别有缺陷的科学假设 工具驱动的迭代流程详解 药物化学家智能体通过多轮迭代反馈实现分子优化: graph TB A[接收候选分子] --> B[Vina-Mol-Gen工作流] B --> C[AutoDock Vina对接] C --> D[PLIP分析结合模式] D --> E[评估分子性质] E --> F[设计分子修饰] F --> G[测试修饰效果] G --> H{满意改进?} H -->|否| F H -->|是| I[输出优化分子] D --> J[检测相互作用] J --> K[氢键/疏水/盐桥] K --> F 核心工具与功能: AutoDock Vina:预测结合亲和力(kcal/mol)和结合姿态 PLIP:自动检测蛋白质-配体非共价相互作用,包括氢键、疏水相互作用、π-π堆积、盐桥等 RDKit:计算QED、SAS、LogP等药物样性质 核心设计原则 系统的核心设计原则是将LLM驱动的推理与领域专用工具集成。每个智能体都配备了一组计算工具,从执行单一计算的原子工具(如从特定数据库检索数据)到管理复杂、多步骤操作的复合工作流不等。 这些工具由成熟的科学软件驱动,包括:RDKit(化学信息学计算)、Prot2Mol(分子生成)、AutoDock Vina(分子对接)、PLIP(相互作用分析)。 可审计与上下文管理机制 论文还补充了系统“可审计性”的具体实现方式,核心在于上下文压缩与分子溯源记录: 摘要解析器(Summary Parser):所有智能体读写同一条时间序列记录,但只把关键摘要写入共享历史,避免把冗长的原始日志塞进上下文 工具输出隔离:详细的对接日志只对调用该工具的智能体可见,且只在当前回合有效,迫使智能体先完成“理解—提炼—总结”的认知步骤 跨轮次记忆压缩:新一轮研究循环只接收上一轮的最终总结与目标,避免历史负担过重 溯源超图结构:系统用有向超图记录分子改造路径,同时维护时间序列链与直系谱系树,每一步改造都标注具体发起的智能体,确保可追溯 技术实现架构 系统的技术栈采用模块化Python框架,确保可扩展性和可维护性: 核心框架 LiteLLM统一接口:使用LiteLLM库作为标准化接口,统一调用Anthropic、OpenAI、Google等不同供应商的LLM API 直接构建:不依赖LangChain等高层agent库,直接在LiteLLM上构建,以实现对上下文管理和工作流逻辑的细粒度控制 开源代码:所有agent定义、提示词和实现细节已公开,可在GitHub仓库获取:https://github.com/deltawave-tech/delta Agent定义策略 结构化提示:每个智能体都遵循Virtual Lab风格,使用标题、专业知识、目标、角色四个维度定义 统一优化:系统提示词在Sonnet-3.7上调优,然后不经修改应用于其他LLM(可能对不同模型的最优提示策略有影响) 顺序执行:采用同步、基于轮次的多智能体架构,每个智能体按固定顺序行动 并行化与可扩展性 并行执行策略:同时运行N=20个独立的完整发现流程,而非单一长流程 Best-of-N选择:所有并行run完成后,聚合候选分子,基于主要优化目标(如对接分数)进行最终选择 加速探索:并行化策略使系统能够同时探索化学空间的不同区域,显著提升发现高质量候选分子的效率 溯源服务实现 有向超图核心:用有向超图建模分子关系,transformations作为hyperedges连接输入和输出分子 三重结构:依赖超图(数据流)+ 时间序列链(不可变线性记录)+ 直系谱系树(快速回溯) 内存数据库:实时记录所有分子候选的进化历史,支持快速查询和分析 实验设计:针对AKT1的分子优化 研究以AKT1蛋白为靶点进行系统性评估,AKT1是一个重要的药物靶点,参与细胞生长、增殖和存活的调节,与多种癌症密切相关。 模型选择与评估 研究评估了5个大语言模型驱动的智能体团队:Claude 3 Sonnet(Sonnet-3.7,Anthropic)、Claude 4 Sonnet(Sonnet-4,Anthropic)、GPT-4.1-turbo(OpenAI)、Gemini 2.5 Pro(Google)和o3(OpenAI)。 每个模型都驱动上述多智能体系统,进行三轮优化循环,每个模型至少进行了三次独立重复。主要评估指标包括: 对接分数(Docking Score):预测结合亲和力,越低越好(单位:kcal/mol) 药物样性质(QED):Quantitative Estimate of Drug-likeness,越高越好(范围0-1) 合成可及性(SAS):Synthetic Accessibility Score,越低越好(范围1-10) 脂溶性(LogP):脂水分配系数,用于评估药代动力学性质 相似性与分布一致性:与已知AKT1抑制剂的Tanimoto相似性,以及FCD(Frechet ChemNet Distance,越低越好) 分子表示说明:论文在生成与评估阶段以SMILES作为核心表示形式,SMILES有效性与唯一性由RDKit解析与规范化完成;进入对接前,SMILES会被转换为三维构象用于AutoDock Vina与PLIP分析。 实验设置 研究设计了三种架构配置进行对比,并基于领先模型进行对照实验: 架构配置 描述 优势 劣势 单一LLM(LLM-only) 不使用工具,仅依赖LLM的内在知识 最快,无需外部工具调用 推理路径不可验证,缺乏精确计算 单智能体(Single-Agent) 一个全能智能体访问所有工具 架构简单,平衡多个目标 可能采用保守策略,优化不够专注 多智能体(Multi-Agent) 6个专业智能体分工协作 专注优化单一目标,可审计性强 复杂度高,可能忽视次要目标 核心发现1:多智能体架构显著提升结合亲和力 研究首先比较了5个LLM驱动的多智能体系统在三轮优化后的表现。结果显示,Sonnet-3.7在提高预测结合亲和力方面最为有效。 图2:各LLM驱动的智能体团队在AI专家基线分子和第3轮迭代后的分子之间,对接分数、QED和SAS的绝对变化(A)和百分比变化(B)。误差线表示三次重复运行的标准误差均值。 关键观察 所有模型在对接分数上都有显著提升: Sonnet-3.7:平均对接分数下降约3 kcal/mol,相对提升约30% GPT-4.1-turbo:对接分数下降幅度明显小于Sonnet-3.7 其他模型:提升幅度较小 然而,这种专注的优化也带来了权衡:在追求更高结合亲和力的同时,药物样性质和合成可及性可能下降。这揭示了多智能体架构的一个重要特征——通过隔离反馈循环实现专注的优化策略。 多智能体架构的优势 多智能体架构的优势在于其分层和专业化的结构: 首席研究员确保整个团队专注于单一主要目标 药物化学家智能体可以大胆地进行结构修饰,因为排名智能体会基于客观指标进行评估 科学评审的逻辑监督避免了有缺陷的科学假设 这种架构在专注优化结合亲和力时表现出色,平均预测结合亲和力提高了31%。但也暴露了一个问题:过度优化单一目标可能导致其他重要性质的忽视。 核心发现2:分子相似性热图揭示不同的优化策略 为了理解不同LLM的优化行为,研究分析了Tanimoto相似性热图,比较起始分子(数据库智能体和AI专家智能体)与三轮药物化学家智能体优化后产生的分子之间的结构相似性。 图3:Tanimoto相似性热图。面板A-E分别报告了Gemini、GPT-4.1-turbo、o3、Sonnet-3.7和Sonnet-4的数据库智能体化合物、AI专家智能体从头生成物、以及三轮药物化学家智能体优化循环后产生的分子之间的相似性。较深的方块表示更高的结构重叠(标度0-1)。 两种探索模式 热图揭示了两种截然不同的优化模式: 模式 模型 Tanimoto相似性变化 优化策略 推理风格 保守优化模式 GPT-4.1-turbo 0.76→0.73(几乎不变) 局部编辑为主,变化幅度小 “思考太快”,偏向低风险编辑 Sonnet-4 约0.76→0.54(小幅下降) 相对保守但略微“放开” 标准自回归模型 激进探索模式 o3、Gemini、Sonnet-3.7 大幅下降 大幅度骨架转变,探索广化学空间 愿意承担风险,大胆结构改变 这反映了不同LLM的内在推理风格:标准自回归模型“思考太快”,优先考虑早期不确定性信号,因此偏向于保守、低风险的编辑。而其他模型更愿意进行大胆的结构改变。 补充:与已知AKT1抑制剂的相似性 作者还比较了生成分子与已知AKT1抑制剂的相似性与分布一致性,结论要点如下: 新颖性确认:所有模型生成的分子与已知AKT1抑制剂相比均为新结构 结构相似性:Sonnet-3.7的平均最大Tanimoto相似性最高,达到0.458 物化分布一致性:FCD结果显示Sonnet-4的物化分布最接近已知抑制剂,略优于Sonnet-3.7 药物样性质:o3在平均QED与Lipinski合规性上领先,Gemini在SA分数上表现最好 核心发现3:迭代的分子性质优化 研究详细分析了药物化学家智能体的迭代优化过程,揭示了智能体如何在多目标之间权衡并调整策略。 图4:药物化学家智能体(MC)与AI专家智能体基线(Sonnet-3.7)的迭代分子性质优化。子图展示了:(A)对接分数(越低越好),(B)药物样性质(QED,越高越好),(C)合成可及性评分(SAS,越低越好),以及(D)LogP(脂溶性,参考信息)。实线表示MC平均性能,虚线表示最佳单个MC分子性能,蓝点线表示AI专家智能体的平均初始输出,红点线表示AI专家智能体的最佳初始输出。 关键发现 在每个迭代中,智能体都成功地将平均预测结合亲和力推向更低:初始-10.05 kcal/mol → 最终-11.91 kcal/mol,提升31.5%。这一改进展示了智能体利用对接工具进行有针对性优化的强大能力。更令人印象深刻的是,智能体并非盲目地追求更好的对接分数,而是在多个性质之间进行复杂的权衡。 多路径权衡 论文给出的案例展示了智能体的多路径优化与权衡能力: 起点分子:de novo骨架对接分数约-9.73 kcal/mol,QED约0.618 路径A:引入氧二唑酮-喹唑啉核心,并将哌嗪替换为哌啶(修饰1-3),对接提升到约-10.68,但QED下降到约0.481 路径B:将噻吩换为羟基苯基,并对哌嗪进行N-甲基化(修饰4-5),对接保持在约-10.0,同时QED提升到约0.84 后续迭代:在氧二唑酮系列上引入二氟甲基与二氟乙基(修饰6与8),对接改善到约-10.71与-11.12,但QED下降到约0.300-0.442 收敛策略:同时引入二氟甲基与二氟乙基侧链(修饰9)维持较强结合并提示潜在代谢稳定性;在羟基苯基支路上去甲基(修饰10)得到更高QED(约0.863),对接仅小幅下降至约-9.33 这个案例说明智能体并非盲目追求单一指标,而是在多目标之间持续权衡,并通过并行策略保留可用的改造路径。 图5:LLM驱动的多步分子改造路径示意。 (A)从de novo分子出发,连续两步修改得到两个分支产物,红圈标记关键结构变化。 (B)三轮优化中的并行分支路径,展示智能体在不同支路上同步探索并保留高潜力改造。 核心发现4:架构对比——专注与平衡的权衡 研究先按平均对接分数筛选出表现最好的模型,并对排名靠前的模型进行了20次独立放大运行以降低随机性偏差。在此基础上,再用领先模型对比单一LLM、单智能体与多智能体三种架构。 性能对比 架构配置 对接分数表现 药物样性质 优势 代价 多智能体(Multi-Agent) 提升最明显(平均结合亲和力提升31%) 中等 专注优化单一目标,反馈回路清晰 可能牺牲部分药物样性质 单智能体(Single-Agent) 中等 更优 更自然地平衡多目标 结合亲和力提升有限 单一LLM(LLM-only) 变化有限 变化有限 速度最快 推理路径不可验证 关键洞察 研究揭示了架构设计的权衡: 多智能体架构: 最适合专注优化:通过隔离反馈循环,能够激进地追求单一主要目标 分层专业化:首席研究员确保团队专注,药物化学家智能体大胆尝试,排名智能体客观评估 31%提升:在预测结合亲和力上取得显著改进 单智能体架构: 自然采用平衡策略:当面临多参数复杂性时,倾向于保守、平衡的策略 更优的药物样性质:虽然结合亲和力提升较小,但生成的分子具有更好的药物样性质 避免瓶颈:不需要在不同智能体间传递上下文 无论采用单智能体还是多智能体架构,相比单一LLM,都有显著的透明度优势: 显式的工具调用记录了推理步骤 智能体间的通信创建了透明的审计跟踪 可分析的推理过程允许理解系统的决策逻辑 Q&A Q1:多智能体架构的“可审计性”具体体现在哪里?为什么这对药物发现很重要? A1:可审计性体现在多个层面: 工具调用记录:每次对接计算、性质计算都被记录 分子谱系追踪:从起始分子到最终候选,每一步修饰都有完整记录 推理轨迹透明:药物化学家智能体的决策过程(为何进行这个修饰)被明确记录 同行评审模拟:科学评审的监督避免了有缺陷的科学假设 这对药物发现至关重要,因为: 知识积累:成功和失败的经验可以被团队学习和重用 责任追溯:当候选分子进入后续验证阶段时,可以回溯设计依据 Q2:研究提到部分模型“思考太快”,偏向保守编辑,这是什么意思? A2:这反映了LLM在处理复杂优化任务时的推理风格差异: “思考太快”:标准自回归模型在生成过程中,一旦对某个方向产生信心,就会快速推进,不太愿意重新考虑 早期不确定性信号:模型过于依赖早期的微弱信号,导致风险规避 保守编辑:更倾向于进行局部的、安全的修饰,而不是大胆的结构改变 从分子相似性热图可以看出: GPT-4.1-turbo的结构变化最小,三轮后仍保持较高相似性 Sonnet-4比GPT-4.1-turbo更“放开”,但仍偏保守 o3、Gemini、Sonnet-3.7更愿意进行大幅度骨架跃迁 这暗示了不同的探索-利用权衡策略 Q3:智能体的多路径权衡能力是如何实现的?这是模型本身的能力还是架构设计的优势? A3:这是架构设计与LLM能力的结合: 架构优势:多智能体系统将复杂问题分解为子任务,每个智能体专注于自己的领域 工具反馈:对接分数和性质计算提供了客观反馈,智能体基于这些结果调整策略 上下文积累:每次迭代的完整记录都传递给下一轮,形成了上下文学习 LLM能力:现代LLM具备了理解失败原因、识别成功部分、组合多种策略的推理能力 具体来说: 智能体会同时维护多个支路,并用对接与性质反馈筛选“可保留的改造” 这种并行探索—择优保留的机制,既来自于LLM的推理能力,也来自于架构提供的结构化反馈 单一LLM也能尝试类似策略,但缺乏稳定的工具反馈与可追溯记录,难以系统化复用 关键结论与批判性总结 核心贡献 本研究构建了可审计的多智能体平台用于药物分子优化,并在真实药物靶点上进行了系统性评估: 架构权衡的量化:多智能体架构在专注优化时表现卓越(31%提升),单智能体在平衡目标时更优 可审计性的实现:通过溯源记录和工具调用日志,构建了完整的推理轨迹 LLM化学推理的评估:系统比较了5个SOTA大语言模型在复杂分子优化任务中的表现 多路径权衡的机制:揭示了智能体如何通过多步骤策略解耦问题并迭代改进 局限性与挑战 靶点依赖性:研究仅针对AKT1一个靶点,结论在其他靶点上的普适性需要验证 工具覆盖范围:目前仅包括对接和基础性质计算,尚未整合ADMET和选择性预测 评估指标:主要依赖预测的对接分数,缺乏实验验证 未来方向 扩展工具集:整合ADMET预测、选择性预测、合成路线规划等更多专业工具 多靶点优化:将系统应用于更多药物靶点,验证结论的普适性 实验验证:对AI设计的候选分子进行合成和实验测试,验证预测准确性 人机协作模式:探索人类专家如何与智能体团队更有效地协作 对实践者的建议 明确优化目标:如果你的主要目标是结合亲和力,使用多智能体架构;如果需要平衡多个性质,考虑单智能体架构 投资可审计性:即使性能略有牺牲,完整的推理轨迹记录对长期成功至关重要 选择合适的LLM:Sonnet-3.7在专注优化时表现最佳,但不同任务可能适合不同模型 监控多目标平衡:即使专注优化主要目标,也要定期检查其他关键性质,避免过度优化 最后的话:本研究展示了多智能体系统如何将通用大语言模型转化为可审计的、领域专用的专家团队,并验证了分层协作与工具驱动的可行性。它更像是一种工作流层面的升级:把分散的工具与知识组织为可追溯的链条。对实践者而言,关键不是“是否用AI”,而是如何定义目标、设置反馈回路、保留可审计证据,让自动化真正服务于科学判断。
Machine Learning & AI
· 2026-03-04
QSAR模型的数据集划分陷阱:为何内部测试性能可能骗过你
QSAR模型的数据集划分陷阱:为何内部测试性能可能骗过你 本文信息 标题:Toward More Trustworthy QSAR: A Systematic Discussion on Data Set Partitioning 作者:Shangyu Li, Peizhe Sun 发表时间:2026年2月2日 单位:哈尔滨工业大学(深圳) 期刊:Journal of Chemical Information and Modeling 卷期:66卷,2199-2210页 引用格式:Li, S.; Sun, P. Toward More Trustworthy QSAR: A Systematic Discussion on Data Set Partitioning. J. Chem. Inf. Model. 2026,66 (3), 2199-2210. https://doi.org/10.1021/acs.jcim.5c02465 摘要 随着QSAR模型开发的激增,人们对评估严谨性的担忧日益增加,特别是关于数据集划分的影响。 本研究使用5个不同规模的数据集,系统评估了随机划分(RS)、基于相似性的划分(SS)和随机种子变化对模型泛化能力的影响,研究覆盖了两种场景:化学筛选的有限数据场景和标准建模的充足数据场景。 研究发现,数据集划分方法的选择和随机种子的选择都会显著影响内部测试性能,而这种性能可能无法可靠反映真实的预测能力。虽然SS在许多情况下可以提高内部测试性能,但这些收益不一定能转化为更强的外部泛化能力。此外,在低采样比例下,SS在内部测试和外部测试上的表现可能都劣于RS。这挑战了为优化内部性能而设计的合理划分能够普遍改善模型性能这一隐含假设。 值得注意的是,在最小数据集上,不同随机种子间的内部测试变异性很高($R^2$:0.453–0.783),而在固定的外部数据集上$R^2$变化较小(0.633–0.672),无论是否进行适用域(AD)过滤都是如此。这削弱了跨研究的可比性,并强调了得出过度乐观结论的风险。 本研究的发现强调,测试集的构建必须与真实应用场景相一致。研究者应避免依赖单一或精心挑选的随机种子,或不合适的合理划分方法。应采用透明的、与应用场景一致的划分协议和AD方法,以强调真正的外部泛化能力,而非可能被夸大的内部指标。 核心结论 内部测试性能不可靠:无论是RS还是SS,内部测试集的性能都可能误导对模型真实预测能力的评估 SS的局限性:相似性划分虽然能提高内部测试性能,但对外部数据集的泛化能力提升有限 随机种子的敏感性:不同随机种子会导致模型性能的显著波动,需要多次重复验证 外部验证的必要性:只有通过独立外部数据集的验证,才能可靠评估QSAR模型的预测能力 背景 QSAR(Quantitative Structure-Activity Relationship,定量构效关系)模型是药物发现和化学信息学中的核心工具,通过建立化学结构与生物活性之间的数学模型,预测分子的性质和活性。随着机器学习技术的发展,QSAR模型的开发呈现爆发式增长,但一个根本性的问题始终困扰着研究者:我们如何知道一个模型真的有用? 传统的模型评估方法通常将数据集划分为训练集、验证集和测试集,通过交叉验证获得内部测试性能,然后报告$R^2$、RMSE等指标。然而,这种做法存在一个致命缺陷:内部测试性能可能无法反映模型在真实应用场景中的预测能力。 关键科学问题 本研究系统地探讨了以下核心问题: 数据集划分方法的影响:随机划分(RS)和基于相似性的划分(SS)如何影响模型的性能评估?SS真的比RS更好吗? 随机种子敏感性:不同随机种子导致的训练集/测试集划分差异,会对模型性能产生多大的影响? 内部测试 vs 外部泛化:模型在内部测试集上的优异性能,是否能够转化为对独立外部数据的准确预测? 数据规模的依赖性:在数据稀缺的化学筛选场景和数据充足的标准建模场景中,这些规律是否一致? 创新点 系统性评估:使用5个不同规模的真实数据集,系统比较RS和SS在不同场景下的表现 双重验证框架:同时评估内部测试集性能和独立外部数据集性能,揭示两者的差异 随机种子分析:量化随机种子变化对模型性能的影响程度 实用性指导:为QSAR模型的实践者提供数据集划分和模型评估的具体建议 研究内容 数据集与实验设置 研究使用了5个不同规模的环境化学数据集: 研究使用的数据集 数据集 样本量 预测目标 应用场景 $K_{\text{ow}}$(辛醇-水分配系数) 11442 化合物的脂溶性 环境行为评估 $S$(水溶性) 6113 化合物在水中的溶解度 环境归趋预测 $H$(亨利定律常数) 1940 气液分配平衡 挥发性有机物评估 Fish acute toxicity(鱼类急性毒性) 908 半数致死浓度$\text{LC}_{50}$ 水生生物毒性评估 $K_{\text{oc}}$(有机碳分配系数) 964 土壤吸附性 污染物迁移预测 这些数据集涵盖了从小样本(964个化合物,$K_{\text{oc}}$数据集)到大样本(11442个化合物,$K_{\text{ow}}$数据集)的规模范围,能够系统评估不同数据规模下模型性能的稳定性。 划分方法对比 研究对比了两种数据集划分策略: 随机划分(Random Split, RS):完全随机地将数据分配到训练集和测试集,不考虑化合物的结构相似性 基于相似性的划分(Similarity-based Split, SS):使用最大最小算法(MaxMin algorithm),根据化合物的分子指纹相似性进行划分,确保训练集和测试集的化合物在化学空间中有良好的分离 对于外部验证,研究从每个数据集中保留了独立的测试子集作为外部数据集,不参与任何训练和验证过程。 SS的具体实现 SS方法的核心目标是最大化训练集的结构多样性,具体实现如下: 步骤 关键操作 目的与输出 分子指纹表示 多数数据集使用半径为2的计数型ECFP4指纹,鱼类急性毒性数据集使用半径为1 统一结构特征表示,便于后续相似性计算 相似性矩阵计算 计算所有化合物对的Tanimoto相似系数,取值范围为0-1 定量衡量结构相似度,构建全局相似性矩阵 MaxMin选择策略 先随机选一个种子分子,再迭代选择与已选分子“最远”的化合物加入训练集 覆盖化学空间的最大范围,提升训练集结构多样性 这种方法让训练集包含更多样化的化合物结构,提升模型对化学空间的覆盖能力。 数据集三分法 研究采用了双重划分策略,将数据集分为三部分: 第一步划分(80:20):使用代表性随机划分(RRS)将完整数据集分为建模集(modeling set)占80%和外部测试集(external set)占20%,外部测试集被完全保留不参与任何训练过程 第二步划分(50:50):从建模集中假设只测量了50%的化合物(模拟有限数据场景),这50%用于模型训练,剩余50%作为内部测试集 最终比例:训练集40%、内部测试集40%、外部测试集20%,其中外部测试集在整个训练过程中完全固定 外部测试集的关键作用 外部测试集在训练过程中完全固定,不参与任何训练、验证或超参数优化,它的作用包括: 模拟真实应用场景:评估模型在完全未见过的数据上的预测能力,这是判断模型是否真正有用的关键标准 提供稳定评估标准:研究表明固定外部测试集上的性能变异远小于内部测试集($R^2$波动0.633-0.672 vs 0.453-0.783),说明外部测试更加可靠 避免过度优化:防止研究者通过调整测试集组成来获得“虚假”的高性能,这在机器学习实践中是一个常见陷阱 实验设计的严谨性 为确保结果的可靠性,研究采用了严格的重复实验设计来量化随机因素对模型性能的影响: 随机种子范围:RS在80:20划分中使用随机种子1–49生成外部集,并据此定义RRS、BRS与WRS;对未明确说明的划分,使用随机种子1–10生成10个独立划分以降低抽样偏差 训练-测试配置:RS与SS各基于10个随机种子生成20种训练-测试配置,并使用3折交叉验证训练 外部集稳定性评估:从外部集抽样50%生成10个subexternal sets,用于评估外部测试的波动 核心发现1:内部测试性能的不可靠性 研究首先在鱼类急性毒性数据集(n = 908)上系统评估了RS和SS的表现。结果令人震惊:内部测试性能可能完全误导我们对模型能力的判断。 图1:鱼类急性毒性数据集上RS和SS的性能对比。该图展示了在不同训练集比例下,随机划分(RS)和基于相似性的划分(SS)在内部测试集和外部数据集上的性能表现。 面板A:在50%测量比例下,SS在内部测试集上显著优于RS,但外部数据集性能差异不大 面板B:不同训练集比例下,两种方法在内部测试集上的性能差异,SS始终优于RS 面板C:不同训练集比例下,两种方法在外部数据集上的性能差异,RS在某些情况下甚至优于SS 面板D:不同训练集比例下,RS和SS生成训练集的重叠率,RS的重叠率接近采样比例,而SS的重叠率明显更高 关键观察 SS在内部测试集上的“虚假优势”:在50%测量比例下,SS方法在内部测试集上的表现明显优于RS,但在独立外部数据集上两者差异很小,说明内部性能优势并不等同于真实泛化优势。 这意味着什么?如果你仅根据内部测试性能选择SS方法,你会认为它构建了一个更好的模型。但实际上,这个“更好”的模型在预测新数据时并不会比RS方法更强。 形象比喻:想象你在准备一场考试,SS方法就像是老师提前“透露”了考题范围,你在练习题上表现得很好(内部测试),但真正考试时(外部预测)并没有比随机准备的同学更强。因为练习题和真实考试的能力要求不完全一样。 此外,图1D显示RS的训练集重叠率接近采样比例,而SS由于MaxMin选择机制导致训练集高度重叠,这解释了SS内部测试更稳定却外部优势有限的原因。 核心发现2:外部子集选择会显著改变评估结论 图2:鱼类急性毒性数据集上不同外部子集的性能对比。该图展示了在多个外部子集上评估同一模型时的性能差异:面板A为模型层面的表现,面板B为外部子集层面的波动。 关键观察:无论采用RS还是SS,模型在不同外部子集上的表现都会出现明显波动,说明外部集构成本身就是影响结论的重要变量。 核心发现3:随机种子与AD设置会放大内部差异 研究系统评估了不同随机种子对模型性能的影响,发现这一因素常常被忽视,但实际上影响巨大。 图3:BRS/WRS与适用域(AD)分析。图3A比较BRS与WRS在内部测试与外部数据集上的表现,图3B展示不同AD方法与阈值下外部样本数量,图3C-D给出在最大相似度AD阈值0.5下的预测结果。 关键观察:BRS在内部测试上显著优于WRS,但在外部数据集上的差异明显缩小,且AD筛选后外部样本数量差异不大。摘要进一步指出,在最小数据集上内部测试$R^2$波动可达0.453–0.783,而固定外部数据集$R^2$仅为0.633–0.672,且这一稳定性不受AD过滤影响。 实践建议:在报告QSAR模型性能时,必须使用多个随机种子进行重复实验,报告均值和标准差,而不是单一随机种子的结果。 核心发现4:SS不一定带来外部优势 研究在所有5个数据集上系统比较了RS和SS的外部泛化能力,结果挑战了“SS总是更好”的普遍认知。 图4:模型残差分析与特征重要性。该图展示了BRS(最佳随机种子)和WRS(最差随机种子)模型在外部数据集上的残差对比,以及SHAP特征重要性分析。 这与普遍认知形成鲜明对比——许多研究者认为SS能够提高模型的“真实性”和“可靠性”,因此应该优先使用。但本研究表明,这种优势在独立外部验证时往往消失。 批判性思考:SS的核心假设是“测试集应该与训练集在化学空间中分离”,以模拟真实预测场景。然而,这种假设可能忽略了两个关键因素: 化学空间的连续性:即使测试集化合物与训练集“不相似”,它们仍然可能共享相同的药效团或作用机制 过拟合风险:SS倾向于选择“边界”化合物进入测试集,这些化合物可能更具“挑战性”,导致模型在内部测试时表现“较差”,但并不代表外部预测能力更强 核心发现5:建模工作流建议 研究基于发现,提出了在不同计算资源条件下的建模工作流建议。 图5:建模工作流建议。 面板A的关键发现包括: 所有使用HPO的策略都优于Baseline:超参数优化对提升模型性能至关重要 使用完整训练数据集重新拟合的策略表现更好:在HPO后用全部训练数据重新训练模型,比只用预训练数据效果更好 RS-holdout准确性最低:由于验证集生成的高随机性,RS-holdout在超参数选择上存在较大变异性 holdout策略的现实意义:在计算资源受限时,holdout可作为CV的折中方案,但需要注意随机性带来的不确定性 建模工作流建议 基于HPO策略的比较结果,研究提出了两种场景下的工作流: 步骤 充足计算资源(面板B) 有限计算资源(面板C) 1. 数据集划分 将数据集多次划分为建模集和测试集(使用不同随机种子) 选择适度的数据划分(对应中等性能的随机种子) 2. 验证集生成 无需预定义验证集,使用交叉验证 使用相似性划分将建模子集分为训练集和验证集 3. 超参数优化 在单个建模子集上通过重复交叉验证进行HPO 在验证集上进行HPO(holdout方法) 4. 模型训练 使用选定的超参数在完整建模集上重新训练模型 在完整建模子集上用优化参数重新训练 5. 结果评估 对多次划分的结果取平均值或选择中等表现的种子(RRS),获得更现实的性能估计 在测试集上评估最终模型 关键区别:充足资源时使用交叉验证和多次划分以获得更稳健的结果,有限资源时使用holdout和相似性划分以平衡准确性和效率。 基于上述系统性研究发现,我们为QSAR模型的实践者提供以下建议: 数据集划分选择指南 场景 推荐方法 理由 注意事项 小样本(<500) SS为主,RS为辅 SS提供更稳定的性能估计 必须外部验证,内部性能可能误导 中等样本(500-5000) RS和SS并行比较 两者外部性能接近,无明确优势 报告两种方法的结果 大样本(>5000) RS为主 RS外部性能更好,且计算效率高 仍然需要多次重复实验 化学筛选场景 SS优先 需要预测真正“新”的化合物 重点关注外部验证 标准建模场景 RS优先 目标是构建通用模型 交叉验证即可 模型验证最佳实践 必须进行外部验证:仅报告内部测试性能是不够的,必须使用独立外部数据集验证模型 多随机种子重复:至少使用5-10个不同随机种子,报告均值和标准差 报告训练集重叠率:特别是使用SS时,应报告不同随机种子下训练集的重叠率 敏感性分析:系统评估不同训练集比例(20%、40%、60%、80%)下的性能差异 避免“cherry-picking”:不要只报告表现最好的随机种子结果 报告规范 在发表QSAR模型研究时,应完整报告以下信息: 数据集划分方法:RS还是SS?具体算法是什么? 随机种子:使用了哪些随机种子?是否重复实验? 训练集比例:训练集、验证集、测试集的比例是多少? 重叠率分析:不同随机种子下训练集的重叠率是多少? 内部vs外部性能:同时报告内部测试集和独立外部数据集的性能 性能波动范围:不同随机种子下的性能分布(箱线图或均值±标准差) Q&A Q1:为什么SS在内部测试集上表现更好,但无法转化为外部优势?这不合理啊? A1:这个现象初看确实反直觉,但有其深刻原因。SS的核心假设是“测试集应该与训练集在化学空间中分离”,但这可能导致两个问题: 测试集偏差:SS倾向于选择“边界”化合物进入测试集,这些化合物可能更具“挑战性”,导致模型在内部测试时表现“较差”,但这个“较差”并不代表外部预测能力弱 训练集代表性:SS为了确保训练集和测试集的分离,可能牺牲了训练集的多样性,导致模型过拟合训练集的特定化学子空间,而对其他子空间的泛化能力下降 形象地说,SS就像让学生考试“超出教学大纲”,学生在内部测试时表现较差(因为题目确实没见过),但这不代表他们在真实考试(外部预测)时会更差。真实考试可能既有一些“超纲题”,也有一些“常规题”,SS的学生可能在“常规题”上反而表现不佳。 Q2:本研究只用了环境化学数据集,结论是否适用于其他QSAR任务(如活性预测、物化性质预测)? A2:本研究使用的数据集涵盖了环境化学的不同性质和规模(从964到11442个样本),具有一定代表性。但是,不同QSAR任务的特性可能不同: 物化性质预测(如本研究):数据集规模通常较大,性质与结构关系较直接,RS可能更合适 毒性预测:通常数据集较小,且化合物结构多样性高,SS可能更有优势 活性预测:通常针对特定靶点,化合物可能集中在特定化学空间,RS可能更合适 因此,本研究的核心方法论和发现是通用的(如内部性能不可靠、随机种子影响大、必须外部验证),但具体的RS vs SS选择需要根据具体任务和数据特性调整。 关键结论与批判性总结 潜在影响 强化了外部泛化是核心指标的共识:单看内部测试很容易得出过度乐观的结论 提醒社区避免挑选随机种子与挑选划分策略造成的结论偏差,强调透明与可复现 将数据集划分从技术细节提升为科学问题的一部分,要求与真实应用场景对齐 存在的局限性与适用边界 结论主要建立在五个毒性数据集与既定评估流程上,仍需在更多任务类型与场景下验证 研究显示在低采样比例下,SS不一定优于RS,内部优势可能源于测试集变得更容易的组成偏差 即便引入适用域筛选,外部测试的波动仍显著小于内部测试,说明内部好看不等于外部可靠 未来研究方向 建立与真实应用对齐的测试集构建规范,明确外部测试集的角色与构建逻辑 完整记录并公开随机种子与划分细节,提升跨研究的可比性与可复现性 系统评估不同划分与适用域策略在外部数据上的稳健性,优先强调可迁移的泛化能力
Machine Learning & AI
· 2026-03-03
ChemLint对话式分子机器学习平台揭开数据质量危机:63.6%测试集骨架已在训练集中出现
ChemLint对话式分子机器学习平台揭开数据质量危机:63.6%测试集骨架已在训练集中出现 本文信息 标题: ChemLint: Conversational Cheminformatics with Large Language Models 作者: Derek van Tilborg, Francesca Grisoni 发表时间: 2026年2月24日 单位: 荷兰埃因霍温理工大学,复杂分子系统研究所、生物医学工程系 引用格式: van Tilborg, D., & Grisoni, F. (2026). ChemLint: Conversational Cheminformatics with Large Language Models. ChemRxiv Preprints. https://doi.org/10.26434/chemrxiv.15000386/v1 源代码: https://github.com/derekvantilborg/ChemLint 摘要 本研究提出了ChemLint,这是一个开源的Model Context Protocol服务器,它将任何兼容MCP的大语言模型连接到精选的本地化学信息学和机器学习工具套件,通过对话界面实现严格的分子数据处理。分子机器学习研究常常受到不一致数据预处理的破坏,包括无效SMILES、未解决的重复项和训练测试泄漏,然而现有的基于LLM的化学工具并没有解决这些以数据为中心的挑战。ChemLint为数据探索和诊断、分子标准化以及机器学习建模提供了工具。所有操作都由既定的库确定性执行,并记录在项目清单中,追踪每个操作,支持可复现性并使管理选择明确。我们通过几个示例展示了ChemLint如何用于识别常见的数据质量问题、评估分割策略以及执行从原始数据到评估的完整建模流程。 核心结论 & 贡献 【科学发现】分子机器学习的数据质量危机被系统性揭示 本研究首次对MoleculeNet的7个主流数据集进行系统审计,揭示了令人震惊的数据质量缺陷,详见“被忽视的领域危机”部分 最致命的发现:随机分割导致训练集和测试集之间的scaffold重叠率高达42.5%至63.6%,这意味着数千篇已发表论文的模型性能可能被严重高估 【工具贡献】ChemLint通过MCP协议提供约150个对话式工具,重构分子机器学习工作流 ChemLint是一个开源的Model Context Protocol(MCP)服务器,它将任何兼容MCP的大语言模型(Claude、ChatGPT、Gemini等)连接到精选的本地化学信息学和机器学习工具套件。 系统性地提供13类约150个工具,涵盖数据管理、分子清洗、描述符、机器学习(33种算法、6种交叉验证、超参数调优)、统计检验、可视化、质量报告等领域 所有操作由既定的库(RDKit、scikit-learn、SciPy)确定性执行,并记录在项目清单中,支持可复现性并使管理选择明确。 背景 被忽视的领域危机 分子机器学习正在显著影响药物发现的范式——从虚拟筛选到性质预测,再到从头分子设计,越来越多的研究依赖于数据驱动的建模方法。然而,在这个蓬勃发展的领域背后,隐藏着一个被长期忽视的危机:主流基准数据集存在严重的数据质量问题,这正在系统性地高估模型性能,并从根本上动摇了人们对已发表研究的信任。 MoleculeNet自2018年发布以来,已被引用数千次,成为分子机器学习领域无可争议的最广泛使用的基准数据集。然而,本研究首次系统性地审计揭示,这些黄金标准数据集存在令人震惊的根本性缺陷: HIV数据集:7.5%的分子包含盐或溶剂片段——这些杂质根本不应该出现在药物分子数据中 HIV数据集:完全未指定立体化学,比例为0%——这意味着所有手性分子的3D结构信息都丢失了 所有数据集:普遍存在化学无效SMILES、未指定的立体化学中心、隐藏的结构异构体重复 最致命的问题:随机分割导致训练集和测试集之间的scaffold重叠率高达42.5%至63.6% 这意味着什么?基于这些数据集和随机分割发表的数千篇论文——包括高引用研究——其性能评估可能严重高估模型的真实能力。 现有工具的局限性 虽然分子数据预处理的最佳实践已经存在,但在实践中并不总是得到一致应用。该领域的跨学科性质意味着并非所有研究人员和审稿人都熟悉这些惯例,而常见的工具链是灵活的而非规定性的。 现有的基于LLM的化学工具(如ChemCrow、ChatInvent等agent系统)主要关注协调端到端的分子设计和合成工作流,但并未解决这些以数据为中心的挑战。这些工具在数据质量控制、标准化和可复现性方面存在明显的空白。 关键科学问题 面对这一危机,本研究提出了三个亟待解决的关键科学问题: 如何让数据质量控制变得普及化?数据质量问题的检测和修复需要深度的专业知识,但每个研究人员都应该能够轻松地识别和解决这些问题,而不需要成为化学信息学专家。这需要工具的智能化和自动化。 如何让数据预处理的选择变得完全透明?不同的标准化和分割策略会导致截然不同的结果,但这些关键选择往往在论文的方法部分被一笔带过,使得读者无法评估其合理性,也无法真正复现研究结果。这需要标准化和可追溯性。 如何让工作流变得完全可复现?从原始数据到最终模型,每一个中间步骤、参数选择和数据处理决策都应该被完整记录和精确追踪,但目前缺乏自动化和标准化的解决方案。这需要系统性的框架设计。 创新点 本研究在方法论和工具设计上提出了四个关键改进: 首个专注于数据质量的对话式化学信息学系统:ChemLint不同于现有的agent系统,它不盲目追求端到端的自动化,而是专注于分子数据的质量控制、诊断和可复现评估,通过对话界面让研究人员以自然语言的方式执行严格的数据管理操作。这种设计理念强调严谨性优于便利性的原则。 基于Model Context Protocol的开放模块化架构:通过MCP协议,ChemLint可以连接任何兼容的LLM客户端,例如Claude、ChatGPT、Gemini等,同时保持所有计算在本地执行,使用既定的化学信息学库(RDKit、scikit-learn、SciPy等),确保结果的确定性和可审计性。这种架构设计既保证了科学严谨性,又提供了前所未有的灵活性。 项目清单系统实现完全可追溯性:ChemLint引入了项目清单的概念,每次数据变异操作都会创建新的资源版本,并自动记录操作类型、时间戳、输入参数和用户提供的解释,形成完整的审计轨迹,使得从原始数据到最终模型的每一个步骤都可追溯和复现。这一设计借鉴了实验室笔记本的理念,但将其自动化和系统化了。 系统化的分割质量诊断:ChemLint提供了8项系统检查来检测数据分割的潜在问题,包括精确重复SMILES、基于相似性的泄漏、scaffold重叠、立体异构体/互变异构体变体、物理化学性质分布差异、标签分布差异、官能团组成差异等,并给出明确的警告和建议。这种全面性和系统性的诊断在领域内是前所未有的。 研究内容 ChemLint系统架构 ChemLint的核心设计理念是将大语言模型的对话能力与化学信息学的严谨方法相结合,通过Model Context Protocol实现两者的无缝集成。系统架构包含三个核心组件:数据探索和诊断、分子标准化、以及机器学习建模,并通过一个跨层面的可复现性系统,即项目清单系统,支撑所有功能。 图1:ChemLint系统架构概览 ChemLint通过MCP协议与LLM客户端通信,将用户的自然语言提示转换为具体的化学信息学操作,并在本地执行计算,返回结果的同时记录操作到项目清单。这种设计确保了所有操作都是确定性的、可追踪的。 系统工作流程 graph TB Start([用户输入自然语言提示]) --> Parse{LLM客户端解析提示} Parse -->|数据探索| Diag[数据探索与诊断工具] Parse -->|分子标准化| Std[分子标准化工具] Parse -->|机器学习建模| ML[机器学习建模工具] Diag --> Exec[本地执行<br/>RDKit/pandas/scikit-learn] Std --> Exec ML --> Exec Exec --> Mutate{是否修改数据?} Mutate -->|是| Create[创建新资源版本<br/>生成唯一标识符] Create --> Log[记录操作到项目清单<br/>操作类型+时间戳+参数+解释] Log --> Return[返回结果到LLM客户端] Mutate -->|否| Return Return --> End([显示结果给用户]) 这个工作流程确保了所有数据变异操作都被记录,形成了完整的审计轨迹。每次操作都会创建新的资源版本,而不是就地修改,这样可以回溯到任何历史状态。 ChemLint的核心功能全景 ChemLint向LLM客户端暴露约150个工具,涵盖分子机器学习工作流的各个环节,系统性地分为13个功能类别: 数据管理:共15个工具,覆盖数据导入、导出、合并、子集提取、检查、过滤数据集 分子清洗:共10个工具,覆盖SMILES标准化、去盐、去重、标签处理 分子描述符:共12个工具,覆盖简单性质(分子量、LogP、TPSA)、指纹(ECFP、MACCS、RDKit)、SMILES编码 骨架分析:共8个工具,覆盖Bemis-Murcko骨架提取、通用骨架、循环骨架、多样性分析 相似性分析:共6个工具,覆盖成对相似度矩阵、k-近邻、训练集相似度评估 聚类分析:共5个工具,覆盖DBSCAN、层次聚类、k-means、Butina聚类算法 机器学习:共40个工具: 33种算法:分类与回归(随机森林、梯度提升、SVM、线性模型、集成方法) 6种交叉验证策略:k-fold、分层、Monte Carlo、scaffold、cluster、leave-P-out 超参数调优:网格搜索、随机搜索,可自定义参数空间 模型评估:20+种评估指标(准确率、ROC-AUC、PR-AUC等)、混淆矩阵、ROC曲线、校准曲线 统计检验:共15个工具,覆盖t检验、方差分析(ANOVA)、相关性分析、正态性检验、Mann-Whitney U检验、Kruskal-Wallis检验、卡方检验 可视化:共8个工具,覆盖带分子提示的交互式散点图、直方图、密度图、箱线图、热图 质量报告:共5个工具: 数据质量分析:19个部分的全面报告(PAINS过滤器、Lipinski规则、重复检测、立体化学完整性等) 分割质量分析:8项数据泄漏检查(精确重复、高相似度对、scaffold重叠、立体异构体、互变异构体等) 骨架报告:多样性度量(Gini系数、Shannon熵)、富集分析、结构离群点检测 活性悬崖检测:共4个工具,寻找结构相似但活性差异大的分子对(分类和回归任务) 异常值检测:共6个工具,覆盖Z-score、IQR、孤立森林、局部异常因子(LOF) 降维可视化:共2个工具,PCA、t-SNE用于化学空间可视化 分子标准化:11步严谨流程 分子标准化是数据质量控制的核心步骤。ChemLint提供了一个11步的标准化流程,每一步都有明确的化学和统计学依据。 整理表:ChemLint分子标准化的11步流程 步骤 操作 化学原理 适用场景 1 生成规范SMILES RDKit的canonicalization算法确保唯一表示 所有分子 2 移除盐 去除抗衡离子,保留母核结构 来源自多处的数据集 3 移除溶剂 去除结晶溶剂、反应溶剂片段 药物筛选数据集 4 去碎片化 保留最大片段,去除不相连的离子/分子 包多个片段的SMILES 5 官能团规范化 标准化常见官能团表示(如硝基、磺酸基) 多来源数据集 6 去离子化 移除金属离子,保留有机骨架 有机金属化合物数据集 7 电荷中性化 将可电离基团转为中性形式 非pH依赖性研究 8 移除同位素 去除同位素标记 放射性标记不重要时 9 互变异构规范化 统一互变异构体表示 需要一致性的数据集 10 立体化学扁平化 移除所有立体化学信息 立体化学不完全指定时 11 最终验证 检查化学有效性,移除无效分子 质量控制最后一步 这些步骤并非总是全部应用,而是应该根据数据集的具体情况和研究目标进行选择。ChemLint的优势在于它让每一步的决策都变得显式,并在项目清单中记录下来。 Supplementary Figure S1:标准化协议的交互决策界面 这张图展示了ChemLint在执行11步标准化协议时与用户的交互界面。当需要用户做出重要的标准化决策时(如是否保留电荷、是否扁平化立体化学等),客户端会向用户询问选择,确保每一步都符合研究需求。 标准化流程的Mermaid图 graph TB Input[原始SMILES数据集] --> S1 subgraph S1["阶段1:结构规范化"] direction LR Step1[1.生成规范SMILES<br/>RDKit canonicalization] --> Step2[2.移除盐<br/>去除抗衡离子] --> Step3[3.移除溶剂<br/>去除结晶/反应溶剂] --> Step4[4.去碎片化<br/>保留最大片段] --> Step5[5.官能团规范化<br/>统一常见官能团表示] end subgraph S2["阶段2:化学性质调整"] direction LR Step6[6.去离子化<br/>移除金属离子] --> Step7[7.电荷中性化<br/>可电离基团转中性] --> Step8[8.移除同位素<br/>去除同位素标记] end subgraph S3["阶段3:结构简化与验证"] direction LR Step9[9.互变异构规范化<br/>统一互变异构体] --> Step10[10.立体化学扁平化<br/>移除立体化学信息] --> Step11[11.最终验证<br/>检查化学有效性] end S1 --> S2 --> S3 Step11 --> Output[标准化后数据集] Step11 -->|发现无效分子| Reject[移除无效分子] Reject --> Step11 style Input fill:#e1f5ff style Output fill:#c8e6c9 style Step11 fill:#fff9c4 数据探索与诊断 在开始任何建模工作之前,了解数据集的质量和特性是至关重要的。ChemLint提供了两个主要的诊断报告。 数据质量报告 数据质量报告执行广泛的数据检查,涵盖基础数据集统计、分子有效性、物理化学性质、统计分布和结构特征等多个方面: 结构有效性检查:识别化学无效的SMILES字符串,违反价态规则的原子,无法解析的分子结构 杂质检测:检测并计数盐抗衡离子、溶剂片段、无机离子 立体化学完整性:统计手性中心(四面体立体中心)的指定情况,立体双键的E/Z指定情况 电荷状态分析:统计携带形式电荷的分子比例,分析电荷分布模式 scaffold多样性:计算Bemis-Murcko scaffold的数量和分布,评估骨架多样性 官能团分布:识别和统计常见官能团的出现频率,检查不同数据集间官能团组成的差异 标签分布分析:对于分类任务,检查类别平衡;对于回归任务,检查数值分布和异常值 结构活性相关性:计算分子描述符与活性标签的相关性,识别潜在的结构活性关系 药物相似性过滤:Lipinski Rule of Five、Veber规则、QED阈值违规检测 异常值检测:使用IQR方法进行异常值检测 这些检查最终会生成一份优先级排序的清理建议列表,每个问题都被分配严重程度级别(“OK”、“low”、“medium”、“high”、“critical”),帮助研究人员系统性地解决数据质量问题。 分割质量报告 分割质量报告专门针对数据集的分割策略进行诊断,执行以下8项检查: 精确重复泄漏:训练集和测试集中是否存在完全相同的SMILES(分子编码) 高相似度泄漏:检测训练集和测试集中是否存在高度相似的分子对(相似度>90%,就像“同卵双胞胎”一样) scaffold重叠:训练集和测试集之间共享Bemis-Murcko scaffold(分子骨架)的比例 立体异构体泄漏:在扁平化立体化学后,检查结构异构体是否跨越分割 互变异构体泄漏:在规范化互变异构体后,检查结构异构体是否跨越分割 分布差异:比较训练集和测试集的分子性质分布(分子量、logP、极性表面积等) 类别分布:对于分类任务,检查类别的平衡性 聚类分析:通过聚类方法识别潜在的聚集结构 标签质量处理 实验生物活性数据不可避免地包含测量误差、缺失值、带有异常值的技术重复,以及对相同分子的矛盾测量结果。然而,许多已发表的研究临时性地处理这些问题或完全忽略它们。 ChemLint提供了系统性的工具来识别和解决标签质量问题: 缺失值处理:自动识别并移除缺失的活性值 异常值检测:支持多种统计方法(Z-score、修正Z-score、IQR、Grubbs检验、广义ESD),并可配置阈值 重复分子处理:对于具有矛盾标签的重复分子(例如,在分子标准化后聚合的立体异构体),ChemLint可以通过统计检验确定这些冲突代表真实的测量变异性还是系统性分歧 合并策略:提供多种重复合并策略(多数投票、均值、中位数)或完全丢弃有冲突的条目 数据集分割策略 数据分割是将分子数据集分成训练集(用于学习,相当于“练习题”)和测试集(用于评估,相当于“考试”)。分割策略的选择会严重影响模型性能评估的可靠性。 整理表:ChemLint支持的4种数据集分割策略 分割策略 原理 适用场景 局限性 随机分割 完全随机分配分子到训练/测试集 先导化合物优化(内插性能) 严重高估外推性能 分层分割 保持标签分布一致 类别不平衡的数据集 仍然存在结构泄漏 scaffold-based 相同scaffold的分子分配到同一集合 评估新颖scaffold的泛化能力 互变异构可能改变scaffold导致泄漏 cluster-based 基于分子相似性聚类,整个聚类分配到同一集合 评估分子簇的泛化能力 聚类算法和参数选择影响结果 对于cluster-based分割,ChemLint支持5种聚类算法(DBSCAN、层次聚类、谱聚类、k-means、Butina),可以使用所有可用的分子表示方法。 在经验上,更严格的分割策略(scaffold-based和cluster-based)往往比随机分割的准确率低10%至30%,但这揭示了在结构新颖分子上更现实的预测性能估计。 机器学习建模 ChemLint提供了33种经典机器学习算法,涵盖分类和回归任务。这些算法包括: 集成方法:随机森林、AdaBoost、梯度提升 线性模型:岭回归、Lasso、Elastic Net 支持向量机:支持分类和回归 最近邻:k-近邻算法 决策树:单棵可解释树 朴素贝叶斯:高斯朴素贝叶斯、多项式朴素贝叶斯 判别分析:线性判别分析、二次判别分析 为确保稳健的性能估计,ChemLint支持多种交叉验证策略(交叉验证就像多次“小考”取平均,避免一次考试的偶然性): k-fold交叉验证(将数据分成k份,轮流用每一份做测试) 分层交叉验证(保证每个分割中类别比例一致) scaffold-based交叉验证(确保相同骨架的分子在同一分割) cluster-based交叉验证(将相似分子聚簇后分配到同一分割) Monte Carlo交叉验证(随机重复多次分割) leave-p-out交叉验证(每次留出p个样本做测试) 对于不确定性量化,部分算法支持贝叶斯集成变体,通过计算预测标准差或集成熵来量化预测不确定性。 超参数调优与模型评估 ChemLint不仅提供模型训练,还支持完整的模型优化和评估流程: 超参数调优:支持网格搜索和随机搜索,研究者可以自定义参数空间,自动寻找最优模型配置 模型评估指标:提供20+种评估指标,包括准确率、精确率、召回率、F1分数、ROC-AUC、PR-AUC等,以及混淆矩阵、ROC曲线、校准曲线等可视化 交互式可视化:生成带分子提示的散点图(鼠标悬停可查看分子结构)、热图、密度图、箱线图等,帮助直观理解数据分布和模型行为 统计检验:支持15+种统计检验方法(t检验、方差分析、Mann-Whitney U检验、Kruskal-Wallis检验、卡方检验、正态性检验等),用于验证结果的统计显著性 异常值检测:提供4种异常值检测方法(Z-score、IQR、孤立森林、局部异常因子),识别数据中的离群点 应用示例1:主流基准数据集的质量审计 作为首次演示,研究团队使用ChemLint评估了MoleculeNet的7个流行单任务基准数据集的质量,仅用一个对话提示:“Check the data quality of dataset.csv”。 Supplementary Figure S2:数据质量报告实际输出示例 这张图展示了ChemLint生成的数据质量报告的实际界面,包括结构有效性检查、杂质检测、立体化学完整性分析等多维度诊断结果。可以看到对每个数据集的详细统计信息和改进建议。 表1:MoleculeNet数据集的质量问题统计 数据集 样本量 无效分子 带电荷分子 含盐/溶剂片段 手性中心指定率 E/Z指定率 结构异构体组数 BACE 1,513 0 55.92% 0.00% 3,150 (25.5%) 97 (29.9%) 45 BBBP 2,050 11 5.74% 5.12% 4,425 (66.0%) 726 (21.5%) 92 ClinTox 1,484 4 60.20% 0.94% 3,731 (82.1%) 537 (37.2%) 80 Delaney 1,128 0 5.23% 0.00% 701 (0.0%) 154 (3.9%) 13 FreeSolv 642 0 5.92% 0.00% 87 (98.9%) 36 (27.8%) 3 HIV 41,127 7 12.78% 7.51% 49,613 (0.0%) 13,481 (0.0%) 181 Lipophilicity 4,200 0 2.36% 0.02% 2,530 (72.9%) 192 (39.1%) 82 结果揭示了几个令人担忧的问题: 化学无效SMILES普遍存在:BBBP数据集包含11个无效SMILES,HIV有7个,ClinTox有4个 盐和溶剂片段污染:许多条目包含盐抗衡离子或溶剂片段,HIV数据集高达7.5% 电荷状态不一致:超过55%的BACE分子和60%的ClinTox分子携带形式电荷 立体化学不完全指定:HIV数据集完全未指定立体化学(0%),其他数据集的指定率也普遍较低 隐藏的结构异构体重复:在扁平化立体化学和规范化互变异构体后,发现了大量隐藏的冗余 然后,研究团队要求ChemLint清理每个数据集:“Clean this dataset so it’s ready for machine learning (don’t split the data yet). After cleaning, run another data quality analysis.” Supplementary Figure S3:数据集清洗对话界面示例 这张图展示了LLM客户端通过对话界面调用ChemLint工具执行数据集清洗的实际过程。展示了从标准化SMILES、移除盐和溶剂、去碎片化、电荷中性化到立体化学扁平化的完整清洗流程,以及ChemLint自动记录的每一步操作和参数。 由于除了HIV之外的所有数据集都是从多个原始来源编译的,团队让客户端对所有数据集进行电荷中性化、移除片段和扁平化立体化学,因为这些分子细节不太可能反映跨原始来源的一致实验条件。 标准化效果是显著的: BACE数据集:带电荷分子从约56%降至约2%,丢弃了66个分子(主要包含无效结构或冲突的重复标签) ClinTox数据集:带电荷分子从约60%降至约8%,丢弃了144个分子 HIV数据集:带电荷分子从约3%增至约13%(因为去除了溶剂和盐片段,暴露了更多带电分子),丢弃了238个分子 所有7个数据集:在标准化后,都免于无效分子、盐和片段,残留电荷主要反映永久离子物种 表2:标准化后的数据集质量 数据集 样本量(丢弃数) 无效分子 带电荷分子 含盐/溶剂片段 BACE 1,447 (66) 0 1.9% 0.00% BBBP 1,922 (128) 0 3.2% 0.00% ClinTox 1,340 (144) 0 8.1% 0.00% Delaney 1,114 (14) 0 5.6% 0.00% FreeSolv 639 (3) 0 5.9% 0.00% HIV 40,889 (238) 0 13.1% 0.00% Lipophilicity 4,092 (108) 0 2.4% 0.00% 应用示例2:数据分割质量危机的揭示 这是本研究最震撼的发现。作为第二个演示,研究团队使用ChemLint系统性地分析了MoleculeNet提供的预定义数据分割的质量,结果揭示了一个被整个领域忽视的严重问题。 对于每个数据集,ChemLint生成了一个详细的分割质量报告,解释每种分割方法的优缺点,并给出明确的警告。例如,对于Lipophilicity数据集,ChemLint得出结论: scaffold-based分割方法提供了最可靠的评估框架,具有完全的结构分离和良好匹配的分布。Fingerprint-based分割提供了关于模型外推的有趣见解,但受到显著的域偏移影响。由于严重的结构泄漏,应该避免随机分割用于模型评估。 在所有情况下,ChemLint都建议不要使用随机分割。例如,对于ClinTox,它警告说由于严重的结构泄漏,随机分割会“给出误导性的乐观结果”。 表3:不同分割方法的泄漏指标对比 分割方法 数据集 训练集(测试集) Scaffold重叠 立体异构体重叠 互变异构体重叠 高相似度分子 ROC-AUC RMSE 随机 BACE 1,210(152) 47.1% 1 0 13 0.88 ± 0.01 - 随机 BBBP 1,631(204) 42.5% 13 11 16 0.91 ± 0.02 - 随机 ClinTox 1,184(148) 46.5% 14 10 16 0.66 ± 0.03 - 随机 Delaney 902(113) 58.1% 2 1 10 - 0.64 ± 0.00 随机 FreeSolv 513(65) 63.6% 1 0 6 - 0.46 ± 0.02 随机 HIV 32,896(4,112) 48.0% 0 4 173 0.77 ± 0.01 - 随机 Lipophilicity 3,360(420) 46.5% 18 3 31 - 0.70 ± 0.01 Scaffold BACE 1,210(152) 0.0% 0 0 2 0.73 ± 0.01 - Scaffold BBBP 1,631(204) 0.0% 0 1 0 0.67 ± 0.01 - Scaffold ClinTox 1,184(148) 0.0% 0 0 0 0.66 ± 0.08 - Scaffold Delaney 902(113) 0.0% 0 0 2 - 0.82 ± 0.01 Scaffold FreeSolv 513(65) 0.0% 0 0 1 - 0.86 ± 0.01 Scaffold HIV 32,896(4,112) 0.0% 0 8 29 0.77 ± 0.01 - Scaffold Lipophilicity 3,360(420) 0.0% 0 0 21 - 0.77 ± 0.01 Fingerprint BACE 1,210(152) 3.2% 0 0 1 0.73 ± 0.06 - Fingerprint BBBP 1,631(205) 4.6% 0 0 0 0.37 ± 0.06 - Fingerprint ClinTox 1,184(148) 5.8% 0 0 0 0.56 ± 0.10 - Fingerprint Delaney 902(114) 28.1% 0 0 0 - 1.23 ± 0.04 Fingerprint FreeSolv 513(65) 100.0% 0 0 0 - 1.36 ± 0.02 Fingerprint HIV 32,896(4,112) 10.9% 0 0 0 0.56 ± 0.03 - Fingerprint Lipophilicity 3,360(420) 4.4% 0 0 0 - 0.84 ± 0.01 对于随机分割,ChemLint识别出训练集和测试集之间的scaffold重叠范围从42.5%到63.6%,以及几个数据集中的立体异构体、互变异构体和近重复泄漏。对于scaffold-based分割,ChemLint确认大多数泄漏已解决,但指出高度相似的分子仍然可能最终出现在两个分割中,而且互变异构化偶尔会改变Bemis-Murcko scaffold,允许互变异构体对跨越集合泄漏。 为什么scaffold重叠是致命的数据泄漏? Scaffold(骨架)是药物化学中的核心概念,指分子的核心结构框架(通过移除侧链原子得到)。Bemis-Murcko scaffold是药物设计中广泛使用的分子骨架表示方法,是药物化学家的共同语言。 当训练集和测试集存在scaffold重叠时,这意味着: 模型学到的是记骨架而非真正的预测能力:测试集中的分子骨架在训练集中已经见过,模型只需要记住“scaffold X倾向于有高活性”,而不需要真正学习分子结构-活性关系的复杂规律。这类似于学生通过记忆题目模板而非理解原理来考试。 这相当于考试前看到了部分试题:如果考试题目和练习题有相同的解题模式,考出的高分不代表学生的真实能力。在药物发现中,真正的挑战是预测全新scaffold的活性——这是最有价值的预测目标——而随机分割根本无法评估这种能力。 导致虚假的最优模型选择:研究者可能选择了在随机分割上表现最好的模型,但这种模型在面对全新骨架时可能完全失效,导致资源浪费和错误的项目决策。 这正是为什么scaffold重叠42.5%至63.6%是一个领域级的严重问题:它表明基于MoleculeNet随机分割发表的数千篇论文,其性能评估可能严重高估了模型的实际预测能力。在药物发现这种成本高昂的领域,这种高估可能导致数百万美元的研发投入被错误地引导。 应用示例3:从原始数据到可复现的完整工作流 作为第三个演示,研究团队使用ChemLint执行了从原始数据到评估报告的完整建模流程。使用Claude Desktop和Claude Sonnet 4.6作为客户端,提供了以下提示: For a drug discovery project, I want to know if the molecules I’m working with can pass the blood brain barrier. Train a robust predictive model based on this raw data set ‘/moleculenet_data/bbbp.csv’ and evaluate it critically. LLM客户端自动使用ChemLint的工具执行了以下步骤: 数据质量分析:生成了全面的数据质量报告,识别了无效SMILES、盐片段、电荷状态等问题 分子标准化:应用了11步标准化流程,包括规范SMILES生成、移除盐和溶剂、去碎片化、电荷中性化、立体化学扁平化等 重复移除:基于规范SMILES识别重复结构,对于精确标签重复折叠为单个条目,对于无法通过二项检验解决的冲突完全移除 基于scaffold的分割:将分子按80/20比例分割为训练集和测试集,确保没有scaffold重叠 随机森林训练:使用ECFP4指纹(一种将分子转换为数字特征的方法)进行分子特征化,训练随机森林分类器,使用5-fold交叉验证 模型评估:在保持的测试集上达到ROC-AUC为0.93±0.01(ROC-AUC是分类模型性能指标,1.0为完美,0.5为随机猜测,0.93意味着模型有很强的预测能力) 为了测试清单系统的可复现性,团队创建了一个新的客户端实例,并要求它在没有访问原始提示的情况下重现实验: Check this old manifest ‘../manifest.json’ and re-do all the experimental steps exactly. You should make a new project and manifest to track everything. 客户端以相同的顺序执行了所有步骤,使用相同的参数,并达到了相同的测试集性能。这证明了项目清单系统的有效性:即使没有原始提示,仅凭清单中的操作记录,新的LLM客户端也能够完全复现整个实验。 LLM生成的Materials and Methods节选 研究团队还要求客户端生成适合在科学期刊发表的材料和方法部分: Write a Materials and Methods section suitable for publishing in a scientific journal. I am tight on words so it should be to the point. 客户端自动使用ChemLint查阅项目清单,然后生成了以下文本(经人工验证每个记录的步骤确认准确): 数据集和数据管理。 BBBP数据集(2050个化合物,二元BBB渗透性标签)从MoleculeNet获得。 SMILES使用ChemLint实现的11步流程进行标准化:规范SMILES生成、盐和溶剂移除、去碎片化(保留最大片段)、官能团规范化、去离子化、电荷中性化、同位素移除、互变异构规范化、立体化学扁平化。 未能通过最终验证的结构被丢弃(保留2039个;99.5%)。 基于规范SMILES识别重复结构;精确标签重复折叠为单个条目,无法通过二项检验解决的冲突被完全移除,最终得到1922个化合物的管理集。 数据集分割。化合物使用Bemis-Murcko scaffold-based分割分为训练集(80%,n = 1557)和测试集(20%,n = 365),集合间无scaffold重叠。无环化合物(n = 96)分配到训练集。 建模。分子被特征化为ECFP4指纹(半径 = 2,2048位),使用scikit-learn的随机森林分类器(默认超参数)通过ChemLint进行5-fold scaffold交叉验证训练。所有实验使用固定随机种子(42)。 这个例子表明,即使LLM客户端在不同提示下可能行为不同,通过清单系统建立清晰的审计轨迹使得即使在对话设置中也能实现可复现性。 实现细节 ChemLint向MCP兼容的LLM客户端暴露约150个工具,使用mcp-cli包。每个工具对应单个、范围明确的分子数据操作。计算工作委托给既定的库,主要是: RDKit:用于分子处理和化学信息学计算 pandas:用于数据集处理 scikit-learn:用于建模和统计程序 SciPy:用于统计检验 ChemLint的功能围绕三个典型的分子机器学习工作流层次组织:(1)数据探索和诊断,(2)分子标准化,以及(3)机器学习建模。一个跨层面的可复现性系统支撑着这三个层次。 资源管理 资源管理通过为每个文件分配唯一标识符来处理,该标识符附加到客户端提供的文件名上(例如,cleaned_data_A3F2B1D4.csv)。这些存储为数据集列,使得失败是透明的,包括哪些分子在哪个步骤被拒绝以及原因。这是故意冗长的,因为诊断拒绝原因往往比获得单个最终的“清理的”数据集更重要。 项目清单系统 项目清单是ChemLint可复现性的核心。对于每个创建的工件,清单记录: 资源类型:数据集、模型、报告等 时间戳:创建时间 创建工具:哪个工具创建它 输入参数:使用的所有参数 客户端提供的解释:为什么执行这个操作 这个清单存储在项目目录的manifest.json文件中,可以被客户端和用户访问,使得每个中间资源都可以被回溯。 当前范围与局限 当前的范围专注于2D分子表示和定量构效关系(Quantitative Structure-Activity Relationship,QSAR,即通过分子结构预测其生物活性的方法)建模工作流典型的功能。3D构象体生成、量子化学和深度学习模型训练等功能在当前版本中故意排除在外,以保持ChemLint专注于数据质量、诊断和可复现评估,而不是充当通用建模环境。 Q&A Q1:ChemLint与现有的化学agent系统(如ChemCrow、ChatInvent)有何区别? A1:ChemLint专注于数据质量控制、诊断和可复现评估,而ChemCrow和ChatInvent等agent系统专注于协调端到端的分子设计和合成工作流。主要区别包括: 定位不同:ChemLint不试图取代传统的建模环境,也不消除对专家判断的需求,而是通过降低领域准入门槛和提供结构化框架来减少数据处理决策的歧义 开放性:ChemLint基于Model Context Protocol,这是一个开放标准,使得它可以与任何MCP兼容的LLM客户端(Claude、ChatGPT、Gemini等)集成,而agent系统通常绑定到特定的模型或平台 Q2:为什么scaffold-based分割会降低模型性能,这难道不是说明模型变差了吗? A2:这是一个常见的误解。scaffold-based分割降低的准确率实际上揭示了模型在结构新颖分子上的真实泛化能力,而随机分割的高准确率往往是虚假的,因为训练集和测试集之间存在结构泄漏。 考试比喻:如果你在考试前看到了大部分试题的答案,你的考试成绩会很高,但这并不代表你真正掌握了知识 机器学习对应:随机分割让模型在考试前“看到”了类似的结构,而scaffold-based分割确保模型在面对全新scaffold时进行真正的“开卷考试” 实证数据:研究表明,更严格的分割策略往往比随机分割的准确率低10%至30%,但这更接近模型在实际应用中的表现 Q3:ChemLint的项目清单系统如何确保可复现性,它是否记录了足够的信息? A3:项目清单系统记录了每个操作的完整上下文:资源类型、时间戳、创建工具、输入参数和用户提供的解释。 全面性:这比传统的实验室笔记本更全面,因为它不仅记录了“做了什么”,还记录了“怎么做的”和“为什么做” 可复现性验证:在示例3中,一个新的LLM客户端实例仅通过读取manifest.json文件,就能够完全复现整个实验,达到相同的测试集性能。这种级别的可复现性在分子机器学习领域是前所未有的 局限性:清单系统并不完美,它依赖于LLM客户端正确解释和执行清单中的指令,而且它不能记录环境差异(如RDKit版本、Python版本等),这些可能仍需要通过容器化(如Docker)来解决 关键结论与批判性总结 潜在影响 ChemLint通过将大语言模型的对话能力与化学信息学的严谨方法相结合,显著降低了分子数据管理的准入门槛,使得非专家研究人员也能执行严格的数据质量控制。这一贡献的意义在于:它将需要深厚专业知识的复杂操作,转化为通过自然语言即可完成的日常任务。 更重要的是,通过项目清单系统,ChemLint让数据预处理的选择变得前所未有的透明,使得每个决策都被记录和追踪。这有助于从根本上提高分子机器学习研究的可复现性和可信度。 然而,ChemLint的最重要的贡献在于它系统性揭示的数据质量危机。主流基准数据集的严重质量问题(无效SMILES、盐/溶剂片段、立体化学不完全指定、隐藏重复)以及数据分割的普遍泄漏问题(scaffold重叠高达63.6%),表明我们需要重新审视许多已发表研究的结论,并在未来的研究中采用更严格的数据管理和评估标准。 这一发现的意义远超工具本身:它挑战了整个领域的基础假设,并可能推动分子机器学习研究范式的再校准。 局限性 2D表示的限制:ChemLint当前专注于2D分子表示和QSAR(定量构效关系,即通过分子结构预测生物活性)建模工作流,不支持3D构象体生成、量子化学计算和基于结构的建模方法,这些对于某些药物发现任务(如分子对接、结合自由能计算)是必不可少的 深度学习支持缺失:ChemLint目前仅提供经典机器学习算法(33种),不支持深度学习模型(如图神经网络、 Transformer模型),而这些模型在分子性质预测和分子生成任务中越来越流行 环境依赖未隔离:虽然清单系统记录了所有操作和参数,但它不隔离计算环境(RDKit版本、Python版本、依赖库版本等),这些环境差异可能在不同机器或时间点导致结果不一致 未来发展方向 ChemLint的设计理念是通过将对话界面与基于约束的API配对,支持数据集探索、系统性诊断常见数据质量问题,以及应用最佳实践策略,而无需依赖临时脚本或未记录的手动步骤。正如原文Conclusion部分所指出的,ChemLint虽然不取代传统的建模环境,也不消除对专家判断的需求,但它降低了领域准入门槛,提供了结构化框架来减少数据处理决策中的歧义,最终提高分子机器学习工作流的透明度和可复现性。 批判性思考 ChemLint暴露了问题还是真正解决了问题? ChemLint的价值首先在于系统性揭示了数据质量危机,这是其最重要的贡献。它提供了诊断工具和manifest系统,但这些工具的实际影响将取决于其采用率 如果大多数研究者继续使用随机分割而不检查数据质量,问题依然存在。更重要的是,ChemLint无法从根本上解决问题:我们需要从头构建高质量、无泄漏的基准数据集,而不仅仅是诊断现有数据集的问题。这一挑战需要整个社区的共同努力 降低门槛是否总是好事? 对话式界面确实让非专家更容易使用化学信息学工具,但这可能是一把双刃剑 如果使用者不理解数据质量的重要性,更容易的工具可能产生更多低质量研究——这是对领域的双重打击:既有问题被更广泛地传播,同时因为“专业性门槛降低”而更难被发现 作者也明确指出ChemLint“不消除对专家判断的需求”,这提示我们需要在“易用性”和“必需的领域知识”之间找到微妙但关键的平衡 问题为何持续了7年? MoleculeNet于2018年发布,这些质量问题一直存在,但为什么直到现在才被系统性地审计?这反映了领域的几个深层次问题: 审稿人和编辑可能没有要求数据质量报告,导致缺乏制度性压力 研究者可能倾向于选择“更容易达到高性能”的方法(随机分割),导致存在结构性激励偏差 领域缺乏标准化的数据质量评估流程和共同的最佳实践 ChemLint的出现是一个重要的开始,但真正解决问题需要整个领域的文化和标准改变。这可能需要:期刊要求提供数据质量报告、审稿人更加关注数据分割策略、以及社区共同努力构建新的高质量基准数据集。
Machine Learning & AI
· 2026-02-27
TradePool:用PubChem指纹子结构池化与映射,给GNN分子性质预测提供可量化的原子归因
TradePool:用PubChem指纹子结构池化与映射,给GNN分子性质预测提供可量化的原子归因 本文信息 标题:TradePool:一种用于量化分子性质预测中原子归因的新型可解释框架 作者:Bingwei Ni, Wanxiang Shen(申万祥), Zhuyifan Ye* 发表时间:2025年12月22日 单位:澳门理工大学(中国澳门),宁波大学药物发现技术研究院(中国浙江),浙江大学药学院(中国杭州) 引用格式:Ni, B.; Shen, W.; Ye, Z. TradePool: A Novel Interpretable Framework for Quantifying Atomic Attribution Values in Molecular Property Prediction. J. Chem. Inf. Model. 2025, 65, XXX–XXX. https://doi.org/10.1021/acs.jcim.5c02225 开源代码与数据:https://github.com/nibingwei123/TradePool 摘要 图神经网络的可解释性一直是化合物性质预测领域的焦点。GNN在小样本化合物数据集建模上表现良好,但现有可解释方法难以准确解释原子归因值(单个原子对模型预测贡献的定量度量),使得先导化合物优化依赖资深化学家的经验,拖慢了药物开发进程。AI生成化学空间的快速扩张需要高效的可解释AI方法,这些工具能够发现超越人类直觉的洞见,补充专家知识并显著加速优化周期。为应对这些挑战,本文提出了一种新颖的双阶段原子归因值计算框架:包括基于结构池化的模型训练和基于子结构映射的原子归因值计算。该可解释框架量化任务特定的原子归因值,在芳香性/LogP/TPSA数据集上使用GCN时,原子归因准确性(计算值与真值的一致性)分别提升30%/20%/15%,Pearson相关系数达到0.93/0.63/0.88,超越了常用可解释方法仅能达到的0–0.3。此外,该方法对模型参数变化不敏感,对化合物结构变化提供相对稳定的预测结果。 核心结论 子结构池化+映射实现全局可解释的原子归因,显著提升与化学真值的一致性。 在芳香性、LogP、TPSA三任务上,TradePool的GCN原子归因Pearson相关0.93/0.63/0.88,F1、sparsity等指标全面优于GNNExplainer、KernelSHAP、Integrated Gradients、PGMExplainer,解释精度与稀疏性双优。 低频子结构筛除(出现次数<100)可抑制过拟合,保证权重的统计显著性。 对模型超参数和输入分子微扰不敏感,归因稳定性优于对照方法;但在GAT上效果一般,暴露了注意力权重与子结构加权的不匹配。 PubChem指纹提供任务无关的标准子结构集合,便于跨数据集、跨架构复用,部署与迁移成本低。 背景 图神经网络通过消息传递捕捉分子拓扑,在溶解度、毒性、反应性等性质预测上已成为主力。但多层聚合带来的“黑盒”问题削弱了可信度,尤其在药物优化环节,需要知道哪几个原子驱动了预测。 现有解释方法存在三大痛点:局部性强,难得到全局稳定的原子归因;与化学真值偏差大,Pearson相关常徘徊在0–0.3;计算代价高或对超参数敏感。子结构层面的解释更接近化学直觉,但GNN输入并未直接包含预定义子结构,如何把“可解释的子结构权重”映射回原子,成了瓶颈。 关键科学问题 如何在不牺牲预测精度的前提下,将GNN的决策过程转化为“子结构→原子”的可量化归因? 子结构集合应如何选择,既具普适性又能捕捉任务相关模式? 归因结果能否对模型参数、输入扰动保持稳定,从而在真实药物优化中可复用? 创新点 双阶段框架:训练时用PubChem指纹做子结构池化,解释时把子结构权重映射为原子归因。 全局归因:通过线性层权重直接量化子结构重要性,再按子结构-原子掩码汇总为原子级贡献。 稳健性设计:低频子结构剔除、权重聚合、多任务对比,提升对超参数和分子扰动的鲁棒性。 任务通用性:同一套指纹子结构跨芳香性、LogP、TPSA乃至药物临床分子数据集均可复用。 研究内容 方法详述 TradePool的核心思想是将子结构作为连接原子和分子性质的桥梁。传统GNN直接从原子嵌入池化到分子表示,丢失了化学家熟悉的官能团或子结构这一中间层信息。TradePool通过引入PubChem指纹定义的881个标准子结构,在训练时显式地学习每个子结构对预测的贡献权重,在解释时将这些权重映射回原子,从而实现全局一致、化学可解释的原子归因。 数据准备与清洗 为什么需要严格的数据清洗? 分子数据常存在SMILES表示不规范、含盐、带电荷等问题,这些会导致同一分子有多种表示形式,影响模型训练和归因评估的准确性。 研究使用RDKit 2022.09.5和MolVS 0.1.1进行标准化处理,包括SMILES规范化统一分子表示确保同一分子只有唯一的SMILES字符串,去盐处理移除分子中的无机盐(如$\ce{NaCl}$、$\ce{HCl}$)只保留有机部分,中和处理将带电荷的分子转为中性形式避免电荷状态影响特征计算,以及去重按分子骨架去除重复化合物防止数据泄漏。 中和应该存疑,应该是所选pH下的状态 清洗后的数据按8:1:1比例划分为训练集、验证集和测试集,这种划分确保模型在训练时不会接触测试集分子,从而真实评估泛化能力。 特征工程:从分子到图 原子特征(71维):每个原子用71维向量描述,包含11类信息 原子类型(43维,C、N、O、S等元素的one-hot编码)、度数(11维,原子连接的其他原子数量0-10+)、隐式价(7维,未显式表示的氢原子数) 电荷(原子的形式电荷如-1、0、+1)、芳香性(是否为芳香原子)、自由基电子(未配对电子数)、杂化类型(sp、sp²、sp³等)、连接氢数(显式连接的氢原子数)、手性中心(是否为手性中心)、手性类型(R/S构型) 键特征(12维)包含4类信息:键型(4维,单键、双键、三键、芳香键)、共轭性(是否参与共轭体系)、是否在环中(环状结构标识)、立体化学(E/Z构型或顺反异构) 这些特征由RDKit自动计算,详见Supporting Information Table S1。 子结构筛选:从881位到400+位 为什么要筛选子结构? PubChem指纹包含881个预定义子结构,但并非所有子结构都在数据集中频繁出现。低频子结构(出现次数<100)在统计上不显著,可能导致模型过拟合——模型会记住这些稀有模式而非学习真正的化学规律。 筛选策略:统计每个子结构在数据集中的出现频次,设定阈值为出现次数≥100次才保留,移除低频子结构以减少噪声和过拟合风险。 筛选结果(图1):芳香性任务保留416个子结构(移除465个),LogP任务保留513个子结构(移除368个),TPSA任务保留442个子结构(移除439个) 图1:三类任务的子结构出现频率热图 横轴:PubChem指纹子结构位;纵向颜色深浅:出现频率占比,深色表示更常见 截断低频(<100次)后,仍可覆盖大多数分子,避免稀疏噪声 筛选后仍能覆盖>90%的分子,说明被移除的子结构确实是稀有模式。图1的热图显示,保留的子结构在数据集中分布相对均匀,颜色深浅代表出现频率——深色表示高频子结构,浅色表示中频子结构。 数据集与标签构建 研究选择了三个具有明确原子归因真值的任务,这是评估XAI方法准确性的关键——只有存在可对照的真值,才能判断模型的解释是否可信。 芳香性数据集(Aromaticity) 为什么选择芳香性? 这是唯一具有客观真值的数据集,被多篇XAI论文用作基准测试。芳香性是分子的固有结构属性,不依赖于计算方法,一个原子是否芳香可以通过Hückel规则明确判定,因此原子归因的真值是确定的。 数据集来源:本文沿用Xiong等人构建的芳香性数据集,用于检验模型在原子层面的化学可解释性,标签为每个分子中芳香原子的数量。 LogP数据集(脂溶性) LogP的化学意义:LogP衡量分子的疏水性,是药物设计中的关键参数。疏水性高的分子更容易穿透细胞膜,但过高会导致溶解度差。 数据集来源:本文使用Wang等人整理的脂溶性数据集,主要来自PHYSPROP数据库与Hansch汇编数据集。 原子归因真值:以Crippen方法给出的原子级LogP贡献作为真值,用于评价连续归因值与真值的一致性。 额外外部集合:411个FDA批准药物与10个SAMPL6挑战分子被用作外部评估,用于检验不同方法的原子归因效果在真实药物结构上的表现。 Crippen原子贡献法是什么 TradePool把Crippen方法当作LogP任务的“原子归因真值”,这一步非常关键,因为它让“解释对不对”变成了可量化的问题。 方法来源:Wildman与Crippen在1999年提出一种原子类型分类体系,用原子贡献加和来预测分子的logP与摩尔折射率(MR)。 核心思想:先根据每个原子的局部化学环境把它分到某个原子类型,再把对应类型的贡献值相加得到全分子的logP。 计算形式:分子的logP可写作 \(\log P = \sum_{i=1}^{N} a_{t(i)}\) 其中,$t(i)$表示原子$i$所属的原子类型,$a_{t(i)}$是该类型的经验贡献系数,$N$是原子数。 为什么适合作为“真值”:它天然给出每个原子的数值贡献,可直接与XAI输出的连续归因值做Pearson相关比较。 RDKit里的实现:RDKit在rdkit.Chem.Crippen模块中提供MolLogP与MolMR,明确采用Wildman–Crippen的原子贡献方案;计算时还提供addHs选项,允许在需要时临时补氢参与贡献计算。实际结果会受到芳香性判定与是否显式加氢的影响,因此同一SMILES在不同标准化流程下可能出现轻微差异。 需要牢记的局限:Crippen是经验模型,主要面向中性小分子;它描述的是分子在辛醇与水相之间的分配倾向,不直接等同于带电体系的logD,也不显式建模溶剂化与构象效应。 参考:Wildman, S. A.; Crippen, G. M. Prediction of Physicochemical Parameters by Atomic Contributions. J. Chem. Inf. Comput. Sci. 1999, 39, 868–873. https://doi.org/10.1021/ci990307l TPSA数据集(拓扑极性表面积) 为什么TPSA重要? TPSA是药物类药性的关键指标,能够预测药物的溶解度、渗透性和药代动力学性质。一般认为,TPSA小于140 Ų的分子更容易口服吸收;极性表面积过大的分子难以穿透肠道上皮细胞,导致口服生物利用度降低。 数据与真值口径:TPSA本质上是一个基于分子拓扑的分子描述符,经典定义来源于Ertl等人的碎片贡献思想。本文将TPSA作为预测标签,并以碎片贡献法得到的原子级贡献作为归因真值,用于量化解释的正确性。 临床分子集(Drug-like Compounds) 为什么需要临床分子集? 前两个数据集虽然有真值但分子多样性有限,临床分子集包含真实的II期及以上候选药物,骨架复杂度更高,更能测试TradePool在实际药物优化场景中的可迁移性。 数据集来源:作者从ChEMBL数据库收集5800个分子量0到600、处于II期及以上临床阶段的小分子;按骨架结构划分训练、验证与测试集。该任务的训练标签与原子归因真值均由RDKit计算。 表1 数据集关键信息对比 | 数据集 | 总样本量 | 训练/验证/测试 | 任务类型 | 原子归因真值 | 数据来源 | 额外测试集 | | — | — | — | — | — | — | — | | 芳香性 | 3947 | 3157/395/395 | 回归(芳香原子数) | 芳香原子标签(芳香原子为1) | Xiong等构建 | - | | LogP | 16296 | 13036/1630/1630 | 回归(辛醇-水分配系数) | Crippen原子贡献 | PHYSPROP与Hansch汇编(Wang等整理) | 411个FDA药物,10个SAMPL6 | | TPSA | 5800 | 4700/550/550 | 回归(拓扑极性表面积) | 碎片贡献法原子贡献 | 文中未详述分子来源 | - | | 临床分子 | 5800 | 按骨架划分 | 由RDKit计算的分子性质 | RDKit计算 | ChEMBL(II期及以上) | - | 模型架构与训练策略 GNN编码器选择 研究实现了三种主流GNN架构,以验证TradePool的通用性: GCN(图卷积网络):每个原子聚合其邻居原子的特征,通过加权求和更新自身表示。GCN简单高效,适合捕捉局部拓扑结构,实现基于PyTorch和DGL-LifeSci 0.3.2。 GraphSAGE(图采样聚合):采样固定数量的邻居,使用LSTM或mean聚合器处理邻居特征。GraphSAGE可扩展到大规模图,聚合方式更灵活,超参数偏好LSTM或mean聚合器。 GAT(图注意力网络):为每个邻居分配注意力权重,动态调整不同邻居的重要性。GAT能够自适应地关注重要邻居,超参数采用4-8个注意力头,小或零dropout。 所有模型使用1-3层消息传递层,ReLU激活函数,隐藏维度在128-256之间。控制组使用传统的WeightedSumAndMax池化,TradePool组替换为子结构池化。 子结构池化机制 这是TradePool的核心创新。传统池化直接将所有原子嵌入求和或取最大值,丢失了子结构信息。TradePool的池化过程如下: 步骤1:构建子结构-原子掩码矩阵S。矩阵维度为$N \times P$,其中$N$是分子中的原子数,$P$是保留的子结构数(416/513/442),矩阵元素$S_{ij} = 1$表示原子$i$属于子结构$j$否则为0。计算方式使用RDKit的PubChem指纹生成函数,自动识别每个原子属于哪些子结构。 步骤2:创建子结构虚拟节点。对于每个子结构$j$创建一个虚拟节点$V_j$,虚拟节点的特征等于所有属于该子结构的原子嵌入之和:\(V_j = \sum_{i: S_{ij}=1} h_i\)其中$h_i$是原子$i$经过消息传递后的嵌入向量。如果分子不包含子结构$j$,则$V_j$为全零向量。 步骤3:展平与预测。将所有子结构虚拟节点展平为一维向量 $[V_1, V_2, …, V_P]$,输入到单层线性层$\hat{y} = W \cdot [V_1, V_2, …, V_P] + b$,输出预测标签(回归任务输出标量,分类任务输出类别概率) 为什么这样设计有效? 子结构池化强制模型通过子结构这一中间层进行预测,使得线性层的权重$W$直接对应每个子结构的重要性。这种设计天然地将可解释性嵌入模型架构,而非事后添加。 图2:TradePool双阶段工作流 (A) 总览:左侧训练阶段输入分子图与子结构掩码,右侧解释阶段输出原子归因 (B) 子结构池化:同一子结构内的原子特征求和形成虚拟节点;未包含该子结构则为零向量 (C) 归因映射:线性层得到子结构权重,按掩码回分到原子,权重累加得到原子归因热图 训练超参数与优化策略 优化器与学习率:使用Adam优化器自适应调整每个参数的学习率,学习率通过贝叶斯优化在验证集上搜索最优值,典型范围为1e-4到1e-3。批大小设定为128平衡内存占用与梯度稳定性,最大训练轮次为200,早停策略监控验证集MAE(回归)或准确率(分类),连续10轮无改善则停止。权重初始化使用Xavier初始化,确保每层输出方差一致,避免梯度消失或爆炸。 训练稳定性技巧:采用冻结策略,训练后10%的轮次仅微调线性层保持图编码部分冻结,目的是降低梯度震荡确保子结构权重稳定可解释。必要时引入L2正则化抑制极端权重,防止单一高频子结构独占权重。 超参数搜索结果(SI Table S2):隐藏维度为128-256,层数为2-3层,GraphSAGE偏好LSTM或mean聚合,GAT采用4-8个注意力头配合小或零dropout。TradePool与控制组使用相同深度,主要区别在池化方式。 原子归因计算 训练完成后,如何从子结构权重得到原子归因?这是TradePool的第二阶段——解释阶段。 提取子结构权重 不同GNN架构的权重提取方式不同,因为它们的聚合机制不同: GCN:线性层权重矩阵$W$的每一列对应一个子结构,子结构$j$的归因值等于该列所有元素之和$A_j = \sum_k W_{kj}$,原理是GCN的聚合是简单求和,权重的和反映了子结构的总贡献。 GraphSAGE和GAT:子结构$j$的归因值等于该列所有元素的L1范数$A_j = \sum_k W_{kj} $,原理是这些模型的聚合更复杂(LSTM或注意力),权重可能有正负,取绝对值后求和更稳定。 映射到原子归因 有了每个子结构的归因值$A_j$,如何得到每个原子的归因值? 映射公式为: \(\text{原子}i\text{的归因} = \sum_{j: S_{ij}=1} A_j\) 通俗解释:查找所有包含原子$i$的子结构(即$S_{ij}=1$的子结构),将这些子结构的归因值累加,累加结果即为原子$i$的归因值。化学直觉:同一子结构内的原子获得相同的基础贡献(因为它们都属于该子结构),处于多个子结构交叉位置的原子累积多重贡献(例如苯环上的碳既属于“芳香环”子结构,也属于“C=C”子结构),这种累加方式与化学家的思维一致——一个原子的重要性取决于它参与了哪些官能团。 呃,其实也可以在搞原子对子结构贡献的权重的,就有点复杂了 “正归因原子”如何定义:阈值与二值化 很多指标(Accuracy、Recall、F1、Sparsity)要求先把连续归因值变成二分类标签。论文对不同方法的二值化规则如下: 传统XAI方法:若原子归因值大于0,则标记为正归因;否则为负归因。 TradePool方法:由于原子归因值来自子结构权重累加,作者不直接使用0作为阈值,而是在训练集上计算一个任务级阈值:对训练集中每个分子,记录其原子归因最大值与最小值;对所有分子的最大值与最小值分别取均值;再取这两个均值的平均作为阈值。验证集与测试集沿用训练集得到的阈值。 通俗解释:这个阈值更像是在训练集的归因值动态范围里取一个平均中线,用它来区分相对更重要与相对不重要的原子。它并不强制每个分子都选出固定比例的原子,只是实际结果常落在中等稀疏度区间。 同时,论文也把真值归因二值化用于分类指标计算: 芳香性任务:芳香原子真值标签为1,其他为0。 LogP与TPSA任务:真值原子贡献大于0标为1,否则为0。 评估指标体系 研究采用Wang等人提出的八项XAI评估指标,全面衡量归因质量: 准确性指标: Accuracy:分类任务,正确识别正/负归因原子的比例 F1-score:精确率和召回率的调和平均,平衡误报和漏报 Pearson相关:预测归因值与真值的线性相关性(-1到1,越接近1越好) 稀疏性指标: Sparsity:被标记为正归因的原子比例。理想的解释应该聚焦于少数关键原子,而非高亮整个分子 Recall:真正的正归因原子中被正确识别的比例 稳定性指标: Fidelity:移除正归因原子后,预测值下降的幅度。下降越多,说明这些原子确实重要 Infidelity:移除负归因原子后,预测值上升的幅度。上升越多,说明这些原子确实有负贡献 Stability:对模型参数微调(如改变随机种子)后,归因结果的一致性 Sensitivity:对输入分子微扰(如添加甲基)后,归因结果的稳定性 呃,不一定非得有下降和上升的幅度很突出的原子吧,比如烷烃,都一样? 这些指标从不同角度评估XAI方法:准确性衡量解释是否正确,稀疏性衡量解释是否简洁,稳定性衡量解释是否可靠。只有在所有维度都表现优秀,才能称为真正好的XAI方法。 总结:TradePool双阶段框架 graph TB subgraph S1["阶段1 训练:子结构池化"] A1["分子图输入<br/>原子71维+键12维"] --> B1["消息传递<br/>GCN / GraphSAGE / GAT"] B1 --> C1["子结构池化<br/>PubChem掩码求和虚拟节点"] C1 end subgraph S2["阶段2 解释:权重映射"] D1["线性层预测标签<br/>同时产生子结构权重"] --> E1["选取子结构权重<br/>不同模型取和或L1范数"] E1 --> F1["按掩码回分原子<br/>归因=所有含该原子的子结构权重之和"] F1 --> G1["输出原子归因热图<br/>稳定、可化学解释"] end S1 --> S2 图2详细展示了TradePool的核心工作流程。TradePool的创新在于将子结构作为可解释的中间层,连接原子级输入和分子级预测。 训练阶段(图2A左侧):分子图经过消息传递层后,不是直接进行全局池化,而是根据预先计算的PubChem指纹子结构掩码,为每个子结构创建虚拟节点。这一步骤(图2B)通过将属于同一子结构的所有原子嵌入求和来实现——如果某个分子不包含某个子结构,则对应的虚拟节点为零向量。这些子结构表示随后被展平并输入到线性层以预测最终标签。 解释阶段(图2A右侧):TradePool的优势得以充分体现。由于线性层的权重直接对应于每个子结构对预测的贡献,研究者可以提取这些权重作为子结构归因值。图2C展示了如何将子结构归因映射回原子:对于每个原子,查找所有包含该原子的子结构,将这些子结构的权重累加,即得到该原子的归因值。这种从子结构到原子的映射策略确保了归因的全局一致性——同一子结构内的原子获得相同的基础贡献,而处于多个子结构交叉位置的原子则累积多重贡献,这与化学直觉高度一致。 结果与分析 主任务预测性能:并未牺牲预测精度 在GCN上,TradePool的原子归因Pearson相关:芳香性0.93,LogP 0.63,TPSA 0.88;常见解释方法多在0–0.30之间。 F1与sparsity均优于GNNExplainer、KernelSHAP、Integrated Gradients、PGMExplainer,说明归因更聚焦、冗余更少,解释“准而简”。 GAT上表现一般,源于注意力权重为标量,难与子结构权重对齐,提示池化假设需与注意力机制协同。 预测精度与对照组相当或更优:TPSA任务GCN的MAE 1.157、RMSE 1.569(对照3.367、4.846),LogP任务GCN的MAE 0.299与对照0.296持平,显示可解释性增强未牺牲主任务性能(SI Tables S3–S5)。 主任务预测性能是可解释性的基础。图3展示了TradePool在三个任务上的预测精度散点图,每行对应一个任务(芳香性、LogP、TPSA),每列对应一个GNN架构(GCN、GraphSAGE、GAT)。 从图中可以看到,所有模型在三个任务上都取得了较高的$R^2$值,数据点紧密分布在对角线附近,表明预测值与真实值高度吻合。值得注意的是,TradePool引入的子结构池化机制并未牺牲预测精度——在大多数情况下,TradePool的$R^2$与使用传统WeightedSumAndMax池化的对照组相当,甚至在TPSA任务上表现更优。这证明了子结构池化不仅提升了可解释性,还通过结构化的中间表示增强了模型对任务相关模式的学习能力。 图3:三任务的真值与预测散点 行:芳香性、LogP、TPSA;列:GCN、GraphSAGE、GAT 颜色区分训练/验证/测试;对角越集中表明拟合越好,右上角图例标示$R^2$ 原子归因精度全面领先 在保证预测性能的前提下,TradePool在原子归因质量上实现了显著突破。图4对比了TradePool与四种主流XAI方法(GNNExplainer、KernelSHAP、Integrated Gradients、PGMExplainer)在原子归因准确率和Pearson相关性上的表现。 图4A显示,TradePool在芳香性、LogP和TPSA三个任务上,特别是在GCN架构上,原子归因准确率均达到最高,芳香性任务甚至接近0.9的准确率。图4B的Pearson相关更是揭示了TradePool的优势:在GCN上,TradePool的相关系数达到0.93(芳香性)、0.63(LogP)和0.88(TPSA),而其他方法大多徘徊在0–0.3之间,部分方法甚至出现负相关。这种量级的提升表明,TradePool生成的原子归因不仅在统计上与化学真值一致,而且能够准确捕捉到原子对分子性质的实际贡献。 图4:原子归因总体表现对比 (A) 原子归因准确率:TradePool在三任务、特别是GCN上最高 (B) Pearson相关:TradePool显著领先,其他方法多在0–0.3之间 图5想回答的问题是:如果一个方法把很多原子都判成关键原子,它当然容易拿到高召回,但这不一定是好解释。作者强调要同时看F1、召回与稀疏性,避免靠把整分子都高亮来“刷指标”。 结论1:TradePool的召回不是靠过度归因换来的。论文指出,TradePool在芳香性与LogP任务的F1与召回都表现良好,更重要的是稀疏性维持在0.4–0.5,意味着大约只有40%–50%的原子被标为正归因,解释更聚焦、信息密度更高。 结论2:KernelSHAP与PGMExplainer存在明显的过度归因倾向。它们在部分任务上召回较高,但对应稀疏性很低,说明方法倾向把接近90%的原子都判为正归因,从而抬高召回。作者认为稀疏性过高或过低都意味着解释存在缺陷:太低会导致解释冗余,太高又容易漏掉关键结构片段。 图5:F1、召回与稀疏性对比 (A) F1-score:TradePool在LogP/TPSA上优势明显。 (B) 召回率:KernelSHAP与PGMExplainer高召回但伴随过多正归因。 (C) 稀疏性:TradePool保持0.4–0.5的稀疏度,解释更集中。 为了直观展示不同XAI方法的归因质量,研究团队随机选取了三个任务(芳香性、LogP、TPSA)测试集中的分子,使用GCN模型生成原子归因热图并进行对比。图11中,绿色高亮表示被预测为正归因的原子,每一行对应一个不同的任务。 从可视化结果可以清晰看到,TradePool的原子归因与化学真值高度吻合:在芳香性任务中,TradePool准确高亮了芳香环上的原子;在LogP任务中,疏水性基团(如芳环、烷基链)被正确识别;在TPSA任务中,含氧、含氮的极性原子得到强调。相比之下,GNNExplainer、KernelSHAP、Integrated Gradients和PGMExplainer等方法存在明显的误高亮问题——它们倾向于高亮更多的原子,包括一些与任务无关的位点,导致归因稀疏性降低、解释冗余增加。 这种可视化案例验证了前面定量指标的结论:TradePool不仅在Pearson相关、F1等数值指标上优于对照方法,在实际化学结构解释的视觉一致性上也表现更佳,更符合化学家的直觉判断。 图11:不同XAI方法在GCN模型上的原子归因可视化对比 每行对应芳香性、LogP和TPSA三个任务之一。 绿色高亮表示被预测为正归因的原子。 TradePool的高亮区域与真值最吻合,误高亮最少;其他方法存在明显的过度归因或归因偏差。 子结构化学合理性 提取各任务权重前十的SMARTS子结构(表3),与化学常识一致: 芳香性任务40%含芳香键; LogP任务突出甲基、芳环、卤素; TPSA任务高频出现含氧、含氮片段O−H、N−O、S(=O)(=O)。 子结构权重跨随机种子保持一致(SI Table S6),N=N、C=S、N−S、O(:C)(:C)等始终位列前十,支持归因的可重复性。 在SMARTS里,: 表示芳香键(aromatic bond),:C 表示芳香碳原子(aromatic carbon) ~ 表示任意键(any bond):不限定是单键、双键、三键还是芳香键,只要两原子之间“有键”就匹配。 表3 三个任务权重最高的10个SMARTS子结构 芳香性 LogP TPSA N#N C−I ≥1 O C=S ≥1 Br O(:C)(:C) N−S N#N N−H C(∼N)(:N) ≥1 Cl ≥1 P N−C:O:C ≥1 S O−H C(:N)(:N) C:C−N−C:C N#N ≥1 Cl C−Br ≥1 N O(:C)(:C) C(∼H)(∼H)(∼H) C#N N−N C(∼F)(∼F) S(=O)(=O) C#N ≥1 F N=O 稳定性与鲁棒性 对模型参数微调或输入分子小幅扰动,TradePool的fidelity/infidelity方差最低,归因热图变化最小。 归因稳定性的原因:子结构集合固定、权重全局学习、低频子结构滤除减少噪声。 对指纹掩码随机置零10%或对分子增加单键旋转等扰动,原子归因排名的Spearman相关仍高于0.85,而对照方法掉到0.5以下,说明结构微扰下解释更稳。 在超参数网格搜索(学习率、隐藏维度、层数)中,TradePool的Pearson相关标准差小于0.03,显著优于对照,超参敏感性低。 Fidelity/Infidelity统计(SI Tables S7–S8):LogP任务TradePool的fidelity_mean=3.38、infidelity_mean=0.69,明显优于其他方法;TPSA任务TradePool保持正向fidelity 36.18,而KernelSHAP虽fidelity高但infidelity为负且方差大,说明TradePool稳定性更高。 图6对应论文的稳定性实验:作者在芳香性测试集里对369个含苯环的分子做结构微扰,在苯环上添加1–2个甲基;不含苯环的分子不做修改。随后用同一个预训练模型分别对加甲基前后分子计算原子归因,并比较每个分子的原子归因准确率变化量。 结论:TradePool对结构小改动更稳。论文报告所有方法的变化总体接近0,但TradePool的变化显著更小,说明当分子发生轻微修饰时,TradePool给出的关键原子集合更不容易漂移。对于药物优化而言,这意味着解释可以跨相邻类似物复用,降低“每做一次修饰就要重新理解解释”的成本。 为什么这能叫稳定:芳香性任务的真值关键原子主要是芳香环原子,给苯环加甲基不会改变原来的芳香原子标签。理想的解释应继续高亮芳香环,而不是被新增甲基带跑偏。 图6:小扰动下的稳定性 (A) 在分子上随机添加1–2个甲基的示例。 (B) 各方法扰动前后原子归因值变化,TradePool波动最小,说明对结构微扰不敏感。 图7是图6的可视化证据:同一批分子在加甲基前后的归因热图对比。这里的绿色代表被方法预测为正归因的原子,也就是它认为的关键原子。在芳香性任务里,这些原子理想情况下应与真实的芳香原子位置一致。 结论1:TradePool的高亮区域更贴近化学真值且更一致。加甲基前后,TradePool主要持续高亮芳香环原子,新增甲基不会导致模型把大量非芳香原子误判为关键。 结论2:部分对照方法会把几乎所有原子都判为芳香。论文特别指出KernelSHAP与PGMExplainer会把所有原子都分类为芳香原子,这会造成“看似召回很高、实际毫无区分度”的解释,和图5中稀疏性异常的问题相呼应。 把图5–7连起来读:TradePool不仅在指标上避免过度归因,还能在结构微扰后保持解释形状;而某些方法的高召回来自过度归因,导致热图失去化学可读性。 图7:扰动前后的原子热图对比 绿色高亮:被判定为正归因的原子;每两行对应同一分子扰动前后。 TradePool在扰动后保持高亮区域一致性,对照方法出现更多误高亮。 图8:跨随机种子的敏感性。五个随机种子训练的GCN模型在芳香性测试集的原子归因准确率箱线图;TradePool方差最小,鲁棒性最佳。 图9:不同随机种子下的原子热图 每行对应一个随机种子训练的模型,绿色为正归因原子。 TradePool跨种子保持高亮模式一致,对照方法高亮位置漂移更大。 Fidelity的实验验证是通过移除原子来测试归因质量:将模型预测为正归因的原子张量置零后重新预测,若预测值显著下降,说明这些原子确实对预测有正贡献;反之,移除负归因原子应使预测上升。 图10展示了在芳香性任务上,TradePool移除正归因原子后预测值下降最多,移除负归因原子后预测值上升最稳定,证明其归因方向与化学机制高度一致。相比之下,其他方法如GNNExplainer和Integrated Gradients移除原子后预测值变化较小或方向不一致,表明归因质量不佳。 纵轴:模型对芳香性任务的输出(预测的芳香原子数量),数值越大表示预测的芳香原子越多。 横轴(1–4)与图例一一对应:1为真值,2为完整分子预测,3为仅保留关键原子后的预测,4为移除关键原子后的预测。 若一个方法真的找到了关键原子,那么黄色箱线图应明显低于绿色(拿走关键后预测下降),而红色应仍接近绿色(只看关键也能维持预测)。 图例解释:蓝色为真值分布;绿色为完整分子预测;红色表示把非关键原子特征置零后的预测;黄色表示把关键原子特征置零后的预测。 图10:移除正/负归因原子后的预测值变化 在芳香性任务上,移除不同XAI方法预测的正/负归因原子后,模型的预测值变化。 TradePool移除正归因原子后预测值下降幅度最大(KernelSHAP也还行?),移除负归因原子后预测值上升幅度最小且稳定,验证其归因方向正确。其他方法移除原子后预测值变化较小或方向不一致,说明归因与模型决策机制不匹配。 版面结构:每一列对应一种解释方法(Random、TradePool、GNNExplainer、KernelSHAP、IG、PGMExplainer),每一行对应一种GNN架构(GCN、GraphSAGE、GAT)。箱线图显示分布范围,箱体中线为中位数,三角形为均值。 临床分子集迁移 在5800个II期及以上候选药物上,TradePool在GCN与GAT上均优于传统基线,显示其对真实药物骨架的可迁移性。 典型案例:含卤代芳环的口服候选物,TradePool高亮芳环与卤素原子,与疏水性主导的LogP真值一致;对照方法偏高亮杂原子,解释偏差较大,显示对实际药物骨架的解释可靠性。 在LogP与TPSA任务中,去除正归因原子会导致TradePool预测下降幅度最大,去除负归因原子则上升最小(SI Figures S1–S2),进一步验证其归因方向符合化学机制。 需要注意的是:正文与Supporting Information未给出该临床分子集的完整数值表,仅给出数据集构建方式与文字性结论描述。 结果逻辑图(方法—结果—局限) graph TB subgraph S0["问题与设计"] Q1("难以获得稳定原子归因") --> Q2("采用指纹子结构做全局池化") end subgraph S1["实验管线"] D0("数据清洗与指纹筛选") --> D1("GCN/GraphSAGE/GAT训练") D1 --> D2("线性层子结构权重") D2 --> D3("掩码回分原子归因") end subgraph S2["核心结果"] R1("Pearson相关0.93/0.63/0.88") --> R2("F1与sparsity领先基线") R2 --> R3("扰动下归因稳定性最佳") R1 --> R4("权重前十子结构符合化学直觉") end subgraph S3["局限与改进"] L1("与GAT注意力不匹配") --> L2("计划加入可学习子结构生成") L3("小数据高复杂任务R^2偏低") --> L2 end Q2 --> D0 D3 --> R1 D3 --> R3 R3 --> L1 方法局限与改进方向 对注意力模型支持不足:子结构等权假设与GAT的原生注意力冲突。 数据集较小(<3000)或任务复杂时,$R^2$偏低,子结构权重难以学到任务相关性。 未来计划:在训练中加入“生成-筛选”子结构模块(类似GAN),替换低权重子结构,提升任务相关性与多样性。 化学与工程解读 化学角度:子结构权重凸显芳香键、卤素、含氧氮片段,与芳香性、疏水性、极性表面积的主导因素一致,提升了模型的化学可信度。 工程角度:使用标准指纹可避免任务特定规则,部署时只需计算指纹与权重矩阵,无需逐分子重新训练,适合大规模虚拟筛选。 Q&A Q1:为什么用PubChem指纹而不是ECFP或规则切分? A1:PubChem指纹是公开字典,881位覆盖常见官能团,跨分子可比;数量适中,便于全局权重学习;规则切分在多数分子下碎片数<10,统计显著性不足。 Q2:子结构权重如何转成原子归因? A2:训练后从线性层取每个子结构的权重(GCN取和,GraphSAGE/GAT取L1范数),再用子结构-原子掩码,将包含该原子的所有子结构权重相加,即为该原子的归因值。 Q3:为什么对参数和分子扰动更稳? A3:归因依赖全局训练得到的固定子结构权重,而非逐样本优化;子结构数量大、权重聚合降低单一掩码变化带来的波动;低频子结构被剔除减少噪声。 Q4:数据清洗如何保证标签一致性? A4:使用RDKit与MolVS标准化SMILES、去盐和中和,重复分子按骨架去重;标签计算遵循Crippen原子贡献或拓扑表面积分拆,保证训练与真值口径一致。 关键结论与批判性总结 潜在影响:为分子GNN提供全局、量化的原子归因路径,能直接指导先导优化与毒性定位,降低对专家经验的依赖。 局限性:与注意力类模型存在机制不匹配;小数据、高复杂任务下权重难学;对子结构词表的覆盖度仍依赖预定义指纹。 未来方向:引入可学习的子结构生成与淘汰机制;探索与GAT兼容的子结构加权方式;将方法拓展到蛋白-配体复合物、材料晶格等更大图结构。 小编锐评: 做可解释性分析的一种尝试了。我的体会是,如果更贴近人类语言,那还得是基团,但到底谁贡献多,会不会有相关,本身就是有点复杂的,case by case的解释是避免不了的。现在这样有解释已经不错了。 做可解释性分析可以水这么多图,学到了
Machine Learning & AI
· 2026-01-11
分子片段语言模型遇见蒙特卡洛树搜索:Trio框架的可解释靶向分子设计
分子片段语言模型遇见蒙特卡洛树搜索:Trio框架的可解释靶向分子设计 本文信息 标题: Toward Closed-loop Molecular Discovery via Language Model, Property Alignment and Strategic Search 作者: Junkai Ji, Zhangfan Yang, Dong Xu, Ruibin Bai, Jianqiang Li, Tingjun Hou, Zexuan Zhu 发表时间: 2025年12月18日 单位: 深圳大学人工智能学院(中国)、诺丁汉大学宁波分校计算机科学学院(中国)、浙江大学药学院(中国) 引用格式: Ji, J., Yang, Z., Xu, D., Bai, R., Li, J., Hou, T., & Zhu, Z. (2025). Toward Closed-loop Molecular Discovery via Language Model, Property Alignment and Strategic Search. arXiv preprint arXiv:2512.09566v2. 源代码: https://github.com/SZU-ADDG/Trio 摘要 药物发现是一个耗时且昂贵的过程,传统的高通量筛选和基于对接的虚拟筛选受限于低成功率和有限的可扩展性。尽管自回归、扩散和流模型等生成方法已经实现了超越枚举筛选的全新配体设计,但这些模型往往存在泛化能力不足、可解释性有限,以及过度强调结合亲和力而牺牲关键药理学性质的问题,从而限制了其转化应用。本文提出Trio框架,这是一个整合了基于片段的分子语言模型、强化学习和蒙特卡洛树搜索的分子生成框架,用于有效且可解释的闭环靶向分子设计。通过这三个关键组件,Trio实现了上下文感知的片段组装,确保物理化学性质和合成可行性,并在蛋白结合口袋内平衡探索新颖化学类型和利用有希望的中间体之间取得平衡。实验结果表明,Trio能够可靠地生成化学有效且药理学性质优越的配体,在结合亲和力提升7.85%、类药性提升11.10%和合成可及性提升12.05%的同时,将分子多样性扩展了4倍以上。 核心结论 Trio框架整合了片段分子语言模型FRAGPT、直接偏好优化DPO和蒙特卡洛树搜索MCTS,实现了可解释的闭环靶向分子设计 在5个蛋白靶点上,Trio生成的分子在结合亲和力、类药性QED和合成可及性SA三个维度上全面超越现有方法 分子多样性相比基线方法提升4倍以上,有效拓展了可访问的化学空间 通过可视化的搜索树轨迹,Trio提供了前所未有的分子优化过程透明度,使药物化学家能够理解和信任设计结果 背景 药物发现是一项极其复杂、昂贵且耗时的工程,通常需要超过十年的持续努力和大量财务投资才能将单一治疗候选药物转化为临床批准的药物。传统的高通量筛选方法虽然做出了重要贡献,但常常受限于低命中率、不断增加的实验成本以及对广阔化学空间的有限覆盖。基于对接的虚拟筛选提供了一种有前景的计算替代方案,能够快速优先排序先导化合物并识别新的治疗机会。然而,这些方法仍然受到高假阳性率和内在可扩展性瓶颈的阻碍,特别是随着化学库在规模和结构复杂性上呈指数级增长。 近年来生成建模的进展代表了一种范式转变,提供了一种在特定任务优化约束下设计新型先导化合物的转型能力。自回归生成模型如Pocket2Mol、ResGen和FragGen能够直接从蛋白3D结构上下文中设计配体,但它们的严格顺序性质偏离了物理现实,累积的误差经常产生化学上不可信的结构。扩散和流模型如DiffBP、DiffSBDD和EquiFM通过同时生成所有原子来克服这些问题,但实验解析的蛋白-配体复合物的有限可用性继续阻碍模型训练,限制了其在实际药物发现应用中的泛化和鲁棒性。 为了克服蛋白条件生成模型的泛化限制,研究人员越来越多地从语言模型中汲取灵感。分子结构可以用SMILES、SELFIES和SAFE等文本格式表达,使得超大规模化合物库能够作为分子语言模型的宝贵训练语料库。代表性工作包括BindGPT、3DSMILES-GPT和TamGen,它们通过大规模预训练和强化学习改善了泛化能力。然而,当前的分子语言模型仍然不足以实现精确的蛋白口袋靶向,辅助优化程序常常过度强调结合亲和力而牺牲类药性QED和合成可及性SA,从而限制了其在药物发现中的转化效用。 关键科学问题 泛化能力不足:现有的蛋白条件生成模型受限于蛋白-配体复合物数据的稀缺性,难以泛化到新的靶点和化学空间,限制了其在实际药物发现中的应用价值 多目标优化失衡:当前方法往往过度关注结合亲和力的优化,而忽视了类药性、合成可及性等关键药理学性质,导致生成的分子难以进入后续的药物开发流程 可解释性缺失:现有模型的黑箱特性使得药物化学家无法理解分子优化的路径,难以合理化或信任设计结果,从而制约了其在药物发现中的广泛应用 化学空间探索受限:基于规则的搜索方法依赖于预定义的片段库和手工设计的连接规则,创造了复杂且低效的搜索过程,限制了可访问的化学空间 创新点 提出FRAGPT片段分子语言模型,使用基于BRICS算法的FragSeq表示,避免了SAFEGPT中数值连接标识符和环索引标记的句法复杂性,在1000万FragSeqs上预训练,实现了上下文感知的片段组装 采用直接偏好优化DPO而非传统的强化学习PPO,将分子语言模型与QED和SA等关键分子性质对齐,避免了模式坍缩问题,实现了平滑的性质偏好整合 将蒙特卡洛树搜索MCTS与DPO对齐的分子语言模型结合,利用上置信界UCB策略平衡探索和利用,通过亲和力、药代动力学和构效关系奖励引导片段组装轨迹,实现了可解释的闭环优化 提供完整的搜索树可视化,使研究人员能够系统追踪候选分子的演化谱系,揭示特定官能团和片段组合如何逐步增强预测结合亲和力,为药物化学家提供了可操作的见解 研究内容 方法概览:Trio的三阶段流程 Trio框架的整体生成流程可以分为三个阶段。第一阶段,使用自监督学习训练一个分子语言模型用于下一个片段预测任务。第二阶段,采用强化学习对分子语言模型进行微调,实现定制化的分子性质对齐。第三阶段,利用蒙特卡洛树搜索和对齐后的分子语言模型在三维蛋白口袋中逐步生成分子。 图1:Trio框架概览与动机 (a) 先前范式的局限性:基于序列的方法(SMILES模型)缺乏3D上下文和片段间语义;基于搜索的方法(GA/MCTS)依赖固定的片段库和手工规则,创造了复杂且缓慢的搜索过程;基于结构的生成器(2D/3D)需要稀缺的蛋白-配体对数据,且存在几何扭曲风险 (b) Trio流程: 阶段1:预训练FRAGPT:在FragSeqs上训练的片段语言模型,学习上下文感知的连接方式,逐步组装有效分子 阶段2:偏好对齐:使用QED/SA对进行DPO训练,使策略偏向可合成、类药性化合物 阶段3:口袋条件规划:DPO对齐的策略驱动MCTS,通过UCB在选择-扩展-模拟-反向传播过程中,结合亲和力奖励对路径进行排序 graph TB Start["开始"] --> SG1["阶段1<br/>FRAGPT预训练"] SG1 --> SG2["阶段2<br/>DPO偏好对齐"] SG2 --> SG3["阶段3<br/>MCTS靶向生成"] subgraph SG1["阶段1:分子语言模型"] direction LR D1["1000万FragSeqs<br/>数据集"] --> M1["GPT架构<br/>8730万参数"] M1 --> O1["输出:FRAGPT<br/>片段预测模型"] end subgraph SG2["阶段2:性质对齐"] direction LR D2["10万DPO对<br/>QED & SA偏好"] --> M2["直接偏好优化<br/>避免模式坍缩"] M2 --> O2["输出:FRAGPT-DPO<br/>类药性模型"] end subgraph SG3["阶段3:树搜索"] direction LR D3["蛋白口袋<br/>3D结构"] --> M3["UCB策略<br/>探索-利用平衡"] M3 --> O3["输出:高亲和力<br/>类药性分子"] end 阶段1:FRAGPT片段分子语言模型 FRAGPT采用类GPT架构,专门用于预测分子片段的自回归模型。原始SMILES字符串需要被修改为基于片段的SMILES标记进行训练。片段化方法不仅保留了片段内部的语义信息,还明确捕获了片段之间的化学相互作用。具体而言,使用BRICS算法将分子从左到右分解为多个FragSeqs,定义了16种化学环境来灵活确定合适的键断裂位点和保留的官能团。 FRAGPT使用基于正则表达式模式的分词器,专门针对SMILES语法定制。生成的词汇表包含约600个唯一标记,不仅包括标准化学标记(如原子、键、分支和环符号),还包括所有必需的特殊标记,如[BOS](序列开始)、[EOS](序列结束)、[SEP](片段标识符)和[PAD](填充指示符)。模型架构包含8730万参数,采用标准的自注意力机制和前馈网络。训练目标是最小化模型预测的标记概率分布与目标标记真实分布之间的交叉熵损失。 在1000万FragSeqs数据集上,使用6块NVIDIA A6000 GPU训练8个epoch,采用AdamW优化器($\beta_1=0.9$, $\beta_2=0.95$),学习率调度策略结合了初始预热阶段和后续线性衰减,批量大小为每GPU 32个样本。 图2:FRAGPT的全新生成和片段约束生成性能 (a) 两种基于片段的SMILES表示:SAFE使用索引原子(脆弱耦合)和位置数字(易出错编码),FragSeq使用独立片段(清晰的顺序流)和逐片段排序(有序且鲁棒) (b) 两种语言模型族:扩散模型使用随机采样,GPT使用逐步掩码预测 (c) 任务分类:Linker生成、Scaffold变形、Motif扩展、Scaffold装饰和Superstructure生成 Linker设计与Scaffold变形的本质区别:尽管两者在条件形式上相似(都需要同时满足起始和终止片段约束),但它们解决的化学问题截然不同。Linker设计LD专注于连接两个给定片段,生成的连接部分不能引入新的环系统,约束更为严格;而Scaffold变形SM则允许并鼓励通过添加新环来修改核心骨架结构,探索更广阔的化学空间。这种差异决定了LD适合优化已知骨架的连接方式,而SM适合探索新型骨架类型。 (d) 全新生成性能:FRAGPT仅用1%的SAFE数据集训练即达到或超越在完整语料库上训练的基线模型性能,展示了卓越的数据效率。FRAGPT的有效性、唯一性和多样性均接近100% (e) 片段约束生成的任务级性能:在LD(Linker设计)、SM(Scaffold变形)、ME(Motif扩展)、SD(Scaffold装饰)和SG(Superstructure生成)五个任务上,FRAGPT在有效性、唯一性、多样性和距离指标上均表现优异。即使在结构受限的Linker设计和Scaffold变形任务中,FRAGPT也展示了显著的生成多样性 阶段2:DPO直接偏好优化 DPO是什么? DPO(Direct Preference Optimization,直接偏好优化)是一种新型的模型对齐算法。传统的强化学习方法(如PPO)需要先训练一个独立的奖励模型来评价生成结果的好坏,然后再用这个奖励模型指导生成模型的优化。而DPO的核心创新是将生成模型本身视为奖励模型,直接从“好坏对比”数据中学习用户偏好,无需额外的奖励模型,既简化了训练流程,又避免了传统强化学习容易出现的模式坍塌问题(即输出过度集中到少数几个高分样本)。 通俗理解:想象你在教一个厨师改进菜品。传统方法(PPO)需要先培养一个专业美食评委,让评委给每道菜打分(比如85分、92分),然后厨师根据这些分数调整做法。这种方法的问题是:培养评委很费时间,而且评委的标准可能不稳定,导致厨师只会做几道“刷分菜”。DPO的做法更直接:每次给厨师看两道菜,告诉他“这道更好吃,那道差一些”,让厨师自己琢磨为什么。这种“品尝对比”的学习方式更自然,厨师不会被绝对分数束缚,而是逐渐理解“什么样的菜更好”,做出的菜品既符合标准又保持多样性。 在Trio框架中,DPO的作用是将FRAGPT从“能生成有效分子”提升到“生成类药性强、易合成的分子”。通过学习10万对“好分子vs坏分子”的对比数据,DPO让模型在保持生成多样性的同时,平滑地将分布向高QED(类药性)、低SA(易合成)的理想区域迁移。 训练流程 为了鼓励FRAGPT生成更合理的分子,采用DPO算法将模型平滑地对齐到更高的QED和更低的SA,而不是使用增强似然强化学习(会导致输出分布坍缩到期望性质的尖峰模式)。与需要训练辅助奖励模型的PPO不同,DPO将GPT策略本身视为奖励模型,这种设计在策略logits和奖励信号之间产生了显式映射,允许语言模型在没有额外批评器的情况下满足用户定义的偏好。 具体流程拆解(对照原文Page 18): 生成候选分子池:让初始的FRAGPT模型(称为参考策略$\pi_{\text{ref}}$)生成约10万个FragSeqs。这些分子从各种起始片段出发延伸而成,结构各异,性质参差不齐 制作“好坏对照表”:按照药物属性(QED类药性和SA合成难度)对每组分子排序,从排名的顶部和底部各抽取一个,组成“好分子-坏分子”配对。比如,同样从苯环片段出发,一个延伸成了QED高(类药性强)且SA低(易合成)的优质化合物,另一个延伸成了QED低且SA高的劣质结构,这就构成了一个训练样本对 让模型学习偏好——“反复展示对比”的具体操作: 不是人工展示:而是通过DPO损失函数$\mathcal{L}_{\text{DPO}}$自动优化模型参数 具体机制:对于每一对好坏分子$(y_g, y_l)$,模型计算生成它们的概率$\pi_\theta(y_g x)$和$\pi_\theta(y_l x)$。优化目标是让生成好分子$y_g$的概率相对于初始模型上升,同时让生成坏分子$y_l$的概率相对于初始模型下降 通俗理解:就像调整一个多选题答题策略——不需要知道正确答案得多少分,只需要知道“选A比选B好”,就能逐渐调整选择倾向。模型遍历10万对数据,每一对都贡献一个调整信号,最终学会在每个起始片段后优先选择那些导向高质量分子的token(片段) 关键优势:不直接告诉模型QED和SA的具体数值(避免对绝对分数的过拟合),只提供相对偏好信号(这个比那个好),让模型保持生成多样性的同时整体向高质量区域迁移 这样就构建了离线偏好数据集$\mathcal{D} = {(x^{(i)}, y^{(i)}g, y^{(i)}_l)}{i=1}^N$,其中$y^{(i)}_g$和$y^{(i)}_l$表示来自相同先验片段$x^{(i)}$但表现出更高和更低药物性质评分的FragSeqs。 然后,最大化强化MLM $\pi_\theta$相对于参考策略$\pi_{\text{ref}}$的似然,优化目标为: \[\mathcal{L}_{\text{DPO}} = -\mathbb{E}_{(x,y_g,y_l)\sim\mathcal{D}}\log \sigma\left(\beta \log \frac{\pi_\theta(y_g|x)}{\pi_{\text{ref}}(y_g|x)} - \beta \log \frac{\pi_\theta(y_l|x)}{\pi_{\text{ref}}(y_l|x)}\right)\] 其中$\sigma$是sigmoid函数,$\beta$是缩放系数,调整训练期间增强偏好和保留原始分布之间的权衡。 公式的通俗解释: 这个损失函数看起来复杂,但核心思想很简单——让模型在生成好分子时变得更自信,在生成坏分子时变得更犹豫。 概率比值 $\frac{\pi_\theta(y_g x)}{\pi_{\text{ref}}(y_g x)}$:表示“新模型生成好分子$y_g$的概率”相对于“旧模型生成好分子的概率”提升了多少倍。比如这个比值是2,说明新模型生成这个好分子的概率是旧模型的2倍 好坏对比 $\beta \log \frac{\pi_\theta(y_g x)}{\pi_{\text{ref}}(y_g x)} - \beta \log \frac{\pi_\theta(y_l x)}{\pi_{\text{ref}}(y_l x)}$:前一项是“好分子概率提升”,后一项是“坏分子概率提升”,两者相减就是好分子相对于坏分子的优势有多大。我们希望这个差值越大越好,即好分子概率涨得快,坏分子概率涨得慢(甚至下降) sigmoid转换 $\sigma(\cdot)$:把差值转换成0到1之间的概率,表示“模型是否正确地更偏好好分子” 负号和期望 $-\mathbb{E}[\log \sigma(\cdot)]$:负号表示最小化负对数似然,等价于最大化模型“做出正确偏好选择”的概率。期望符号表示对所有10万对数据求平均 简单来说:DPO通过这个损失函数,让模型在每次遇到选择时(比如从苯环出发,下一步加什么片段),逐渐提高选择导向好分子路径的概率,降低选择导向坏分子路径的概率,最终整体生成分布向高质量区域迁移。 图3:跨基线数据和生成模型的化学空间比较表征 (a) 二维t-SNE投影——DPO如何改变生成分布 vanilla FRAGPT(蓝色)几乎完全覆盖了训练集DATASET(灰色)的分布范围,说明模型忠实地学习了训练数据的多样性,但也继承了训练集中的低质量分子 FRAGPT-DPO(红色)将分布集中到数据密集核心,像是给原来分散的点云“做了一次聚焦”,重点生成位于化学空间中心区域的高质量分子(对照图3b/c可知这些区域对应高QED、低SA) 为什么“集中”是好事:这说明DPO成功地将生成重心从“覆盖全部训练集(包括边缘低质量区域)”转移到“聚焦高质量核心区域”,在保持化学多样性的同时显著提升了生成分子的平均质量 SAFEGPT由于其更大更多样的训练语料库,产生了几个在原始数据集中稀疏表示的高密度聚类,探索了更广阔的化学空间 (b) QED和SA分布的箱线图:vanilla FRAGPT紧密镜像训练集的联合QED-SA景观,SAFE在QED上有所改善但SA分布更广,FRAGPT-DPO显示QED明显上移和SA适度增加,伴随SA方差收缩 (c) QED-SA景观的六边形密度图:揭示了样本密度向化学理想区域的显著转移,有效消除了原始数据中存在的低质量长尾 (d) 生成分子亚结构的统计分析:顶部面板显示所有三个生成器紧密再现了原子类型、键类型和环大小分布的训练集统计。底部面板进一步揭示vanilla FRAGPT保留了所有三个描述符的相似频率,包括低频卤素(I, Br, Cl)和大环。FRAGPT-DPO放弃了化学不利的基序,从而相对于数据集改善了类药性和合成可及性 小编锐评:每次看到这些指标看起来都差不多,就觉得守着这么点数据卷AI模型实在没有意思……而且generation本身是个工程问题(不去挖底层物理化学规律就不是科学问题),没有用在制药公司的话实在是电子游戏……实践是检验真理的唯一标准,没有人知道新颖的化学空间是不是对的,拿这个来评价就很难评。侯老师工作里面的QED、SA这些真的是重要的指标啊,才是应该发扬光大的,但是吧,好像也没明显提升,本来就是符合一定标准就行了…… 阶段3:MCTS蒙特卡洛树搜索 Trio将对齐后的FRAGPT-DPO与MCTS算法结合,用于复杂的靶向分子设计。这种混合方法利用MCTS在平衡探索和利用方面的优势,促进了具有增强结合亲和力的更多样化分子生成。该算法包括四个典型阶段:选择、扩展、模拟和反向传播。 MCTS的通俗理解: 想象你在一个巨大的化学迷宫中寻找最好的分子,每个岔路口代表“添加哪个片段”的选择。MCTS就像一个聪明的探险家,采用“边探索边记录,择优深入”的策略: 探索vs利用的困境:是继续尝试新路线(探索),还是深挖已知的好路线(利用)?太保守会错过更好的分子,太冒险会浪费计算资源 MCTS的解决方案:用一棵搜索树记录所有尝试过的路径和它们的奖励(对接分数、QED、SA),每次迭代都基于历史经验做出更明智的选择,逐渐将搜索重心转向最有希望的区域 四个阶段的循环:选择(沿着最有潜力的路径向下走)→ 扩展(在叶节点添加新片段)→ 模拟(快速试探这条路能走多远)→ 反向传播(把结果反馈给路径上的所有节点)。这个循环重复数千次,树逐渐生长,好路径被反复加强,差路径被逐渐放弃 graph TB Start["初始化<br/>根节点[BOS]"] --> Loop["开始MCTS迭代"] Loop --> S1 subgraph S1["1.选择阶段Selection"] direction LR Sel1["从根节点出发"] --> Sel2["计算所有子节点的<br/>UCT值"] Sel2 --> Sel3["选择UCT最大的<br/>子节点前进"] Sel3 --> Sel4["重复直到<br/>到达叶节点"] end S1 --> S2 subgraph S2["2.扩展阶段Expansion"] direction LR Exp1["调用FRAGPT-DPO"] --> Exp2["输入:父节点的<br/>部分SMILES序列"] Exp2 --> Exp3["输出:下一个<br/>片段Fragment"] Exp3 --> Exp4["去重检测<br/>避免重复结构"] Exp4 --> Exp5["创建新子节点<br/>添加到搜索树"] end S2 --> S3 subgraph S3["3.模拟阶段Simulation"] direction LR Sim1["从当前节点出发"] --> Sim2["FRAGPT快速rollout<br/>生成至[EOS]"] Sim2 --> Sim3["得到完整分子<br/>SMILES序列"] Sim3 --> Sim4["AutoDock Vina<br/>对接到蛋白口袋"] Sim4 --> Sim5["计算奖励R<br/>对接分数+QED+SA"] end S3 --> S4 subgraph S4["4.反向传播阶段Backpropagation"] direction LR Back1["从叶节点向上<br/>回溯到根节点"] --> Back2["更新访问次数<br/>N<sub>j</sub> ← N<sub>j</sub> + 1"] Back2 --> Back3["累积奖励<br/>Q<sub>j</sub> ← Q<sub>j</sub> + R"] Back3 --> Back4["强化高奖励路径<br/>抑制低奖励分支"] end S4 --> Check{"是否达到<br/>迭代次数上限?"} Check -->|"否<br/>继续探索"| Loop Check -->|"是<br/>搜索完成"| Output["输出奖励最高的<br/>完整分子"] 选择阶段:在化学决策树中导航 采用修改的上置信界UCT准则来选择具有高潜在奖励的子节点,同时保持探索的多样性。子节点$j$的UCT值公式为: \[\text{UCT}_j = \alpha \times \text{average}(a_j) + (1-\alpha) \times \text{max}(a_j) + C\sqrt{\frac{\ln N_C}{N_j}}\] 其中$\text{average}(a_j)$和$\text{max}(a_j)$分别表示动作$a_j$的平均和最大奖励,$\alpha$操纵历史性能$\text{average}(a_j)$和乐观潜力$\text{max}(a_j)$之间的权衡,$C$通过缩放来自UCT框架的第二项来表示探索-利用平衡,$N_C$是父节点的总访问计数,$N_j$是节点$j$的访问计数。 通俗解释——如何选择下一步走哪条路: 从根节点([BOS]标记或初始片段)开始,算法需要决定往哪个子节点(添加哪个片段)前进。UCT公式就像一个“路径评分系统”,综合考虑三个因素: 第一项:$\alpha \times \text{average}(a_j)$——历史平均表现。这条路之前走过多次,平均奖励如何?就像餐厅的平均评分,反映稳定性 第二项:$(1-\alpha) \times \text{max}(a_j)$——最佳潜力。这条路曾经出现过的最高奖励是多少?反映乐观潜力,也许只是运气好,但值得再试试 第三项:$C\sqrt{\frac{\ln N_C}{N_j}}$——探索奖励。这条路被访问的次数$N_j$越少,这一项越大,鼓励尝试冷门路线。$\ln N_C$确保总体探索随迭代次数对数增长,避免过度探索 简单来说:选择UCT值最高的子节点前进。一开始,未探索的路径因为探索奖励高而被优先尝试;随着迭代进行,高奖励的路径逐渐脱颖而出,搜索重心向它们倾斜,但仍保留一定概率探索新路径。 扩展阶段:生成下一个分子片段 在选择叶节点后,FRAGPT作为代理生成SMILES序列的后续片段。扩展阶段包含重复检测机制,计算当前节点与其兄弟节点之间的分子相似性,扩展重复最多5次直到获得结构不同的分子,从而增强候选物的多样性和优化过程的整体效率。 FRAGPT的输入输出机制(对照原文Page 20): 输入是什么:父节点存储的部分SMILES序列(当前已构建的分子片段序列)。例如,父节点可能是[BOS][SEP]c1ccccc1[SEP](从[BOS]开始,已添加苯环片段) FRAGPT做什么:作为自回归语言模型,FRAGPT根据这个“前文”(部分序列)预测“下一个token”(下一个片段应该是什么)。这正是GPT架构的核心能力——给定前文,预测下一个词(这里是片段) 输出是什么:一个新的片段(Fragment),而不是完整分子。例如输出CC(=O)[SEP](乙酰基片段) 如何使用:将新片段追加到父节点的SMILES字符串后面,形成新的部分序列[BOS][SEP]c1ccccc1[SEP]CC(=O)[SEP],作为新子节点存储在树中 关键区别: 扩展阶段:只生成一个片段,在树上添加一个子节点,逐步构建分子 模拟阶段(下一步):从当前节点出发,一口气生成到[EOS]结束,得到完整分子用于评分 通俗解释:到达叶节点后,检查它是否已经是完整分子(包含[EOS]结束标记)。如果还没结束,就调用FRAGPT-DPO模型读取父节点的部分SMILES,预测并添加下一个片段,在树上创建新分支。为了避免生成重复的分子浪费计算,会检查新分子与兄弟节点的相似性,如果太相似就重新生成,最多尝试5次。这就像在迷宫的岔路口开辟一条新路,但要确保不是走回头路。 模拟阶段:快速试探长期潜力 通过执行蒙特卡洛rollout直到到达终端状态([EOS])来评估新扩展节点的长期潜力。在rollout过程中,FRAGPT生成基于当前节点状态的完整SMILES序列并重建相应的分子,近似当前扩展节点的潜在分子状态以供后续评估。生成的分子使用领域特定的奖励函数$R(\cdot)$进行评分,量化期望的性质,如合成可及性SA、类药性定量估计QED和靶特异性生物活动(如对接分数)。 这里回答一个重要问题:FRAGPT本身不需要蛋白结构信息作为输入!蛋白信息通过实时对接评估间接使用: FRAGPT的角色:只负责生成化学上合理的分子序列,基于预训练的SMILES语言模型,不涉及蛋白结构 蛋白信息的引入:在模拟阶段,生成完整分子后,使用AutoDock Vina将分子对接到目标蛋白口袋,得到对接分数 奖励函数设计:$R(\cdot)$综合多个评分:对接分数(结合亲和力)+ QED(类药性)+ SA(合成可及性) 闭环优化:奖励反馈给MCTS → 更新节点统计 → 指导后续片段选择 → 逐渐向高亲和力分子收敛 这种“实时对接评估指导搜索”的方式(原文称为“real-time docking evaluations”),使得MCTS能够在不直接使用蛋白结构作为模型输入的情况下,仍然实现靶向分子设计。图5b的结合模式(疏水、氢键、π-π堆积)是基于Vina对接得到的最优结合构象进行的相互作用分析。 通俗解释:扩展阶段只添加了一个片段,但我们想知道“如果沿着这条路一直走下去,最终能得到什么样的分子?”模拟阶段就是快速试探:让FRAGPT从当前片段出发,一口气生成到分子完成([EOS]),然后用Vina对接到蛋白口袋,计算这个完整分子的奖励(对接分数、QED、SA的加权组合)。这就像下围棋时的“快速模拟对局”——不需要精确计算每一步,只需要快速跑到终局,看看大概能赢多少。这个奖励就是这条路径的“潜力评估”。 反向传播阶段:更新路径统计信息 将模拟获得的最终奖励$R$向后传播通过树以更新所有遍历节点的统计信息。每个节点的访问计数$N_j$和累积奖励$Q_j$递增:$N_j \leftarrow N_j + 1$,$Q_j \leftarrow Q_j + R$。这种更新机制使算法能够随时间积累经验,强化一致导致高奖励结果的节点,同时逐渐阻止次优分支的探索。 通俗解释:模拟得到了奖励分数,现在要把这个信息反馈给这条路径上的所有节点。从叶节点一路向上回溯到根节点,每个经过的节点都更新两个统计量:访问次数$N_j$加1(记录这条路又走了一遍),累积奖励$Q_j$加上这次的奖励$R$(积累经验)。这样,下次再选择时,UCT公式就能利用这些更新后的统计信息做出更明智的决策。高奖励的路径会被标记为“有潜力”,低奖励的路径会被逐渐冷落,实现“强者愈强”的良性循环。 四阶段循环总结:这四个阶段构成一个完整的迭代循环,重复数千次(如5000次模拟)。每次循环都让搜索树变得更聪明一点,最终收敛到高质量分子集中的区域。图5a展示了一个实际的搜索树示例,从[BOS]开始,经过5层片段添加,最终找到对接分数最优的候选分子(标注皇冠图标)。 靶向分子生成的性能评估 在5个成熟的蛋白靶点(parp1, fa7, 5ht1b, braf, jak2)上进行了全面评估。主要评估指标是top-hit 5%分数,定义为前5%独特且新颖生成hits的平均对接分数DS。新颖hits的定义采用三个严格标准:DS < 活性分子的中位DS、QED > 0.5、SA < 5.0。 每个蛋白靶点生成3000个候选分子,与最先进的基线生成器进行基准测试。基线方法包括四个方法学家族:基于片段的方法(JT-VAE、HierVAE、MARS、RationaleRL、FREED、PSVAE、f-RAG和GEAM),遗传算法变体(Graph GA、GEGL和Genetic GFN),强化学习基线(REINVENT和MORLD),以及扩散模型(MOOD)。 靶点 f-RAG GEAM Trio* Trio parp1 -12.945 -12.891 -13.129 -12.730 fa7 -9.899 -9.890 -10.359 -10.132 5ht1b -12.670 -12.374 -12.954 -12.669 braf -12.390 -12.342 -12.591 -12.389 jak2 -11.842 -11.816 -11.855 -11.806 表1:5个蛋白靶点上的对接性能定量比较(展示最佳baseline方法) 表格说明: 评价指标:AutoDock Vina对接分数(单位:kcal/mol),数值越负越好(表示结合越紧密) 方法选择:表中展示了近期SOTA方法f-RAG和GEAM(两者在原文完整表格的15个方法中表现最佳),以及本文的Trio*和完整Trio 完整对比:原文Table 1包含15个baseline方法(涵盖基于片段、遗传算法、强化学习和扩散模型四大类),Trio*在所有5个靶点上均实现最佳结合亲和力,超越所有基线 加粗规则:每个靶点的最优值用粗体标注。5ht1b、braf和jak2三个靶点上,完整Trio与f-RAG的差距在0.001-0.002 kcal/mol范围内,几乎持平 核心发现: 基础Trio*模型(无DPO约束)在5个靶点上均实现了最佳结合亲和力,平均对接分数为-12.169 kcal/mol,超越所有基线方法。这证明了将片段语言模型与引导树搜索结合的有效性。完整的Trio框架将FRAGPT-DPO与MCTS集成,创建了类药分子搜索的整体解决方案。与仅关注探索的Trio*不同,完整Trio模型不仅优化结合亲和力,而是导航多目标景观以优先考虑类药性和合成可及性。完整Trio在5个靶点上的平均对接分数为-12.389 kcal/mol,虽然略低于Trio*,但在QED和SA上表现更优(见图4a),实现了亲和力、类药性和合成可及性的三维平衡。 图4:5个治疗靶点上的性能和多样性分析 (a) 箱线图比较:对比GEAM、Trio*和Trio生成分子的Vina对接分数(上)、QED(中)和SA(下)分布。虽然Trio*表现出最极端的DS分布,完整Trio模型在QED和SA上实现了优越且紧密聚类的值,由偏好对齐驱动,为实际药物发现提供了最佳平衡 (b) 超参数敏感性分析:显示搜索步数(上)和搜索宽度(下)对20次独立运行的平均Vina对接分数的影响。对接分数通常随着模拟计数的增加而改善,而扩展树宽度增强探索但对对接性能没有统计学显著增益 (c) 分子多样性分析:使用#Circles指标量化多样性,计算从3000个生成集中可以选择的最大分子数,使得每对选定分子超过最小距离阈值(Morgan-Tanimoto相似性>0.75)。Trio*模型在所有5个蛋白靶点上展示了显著的多倍改进,Trio模型相对于Trio*有预期的适度减少,但其#Circles计数仍优于早期方法 为了减轻由近乎相同分子簇引起的夸大性能,对GEAM、Trio*和Trio每个靶点生成的3000个分子进行了去冗余处理,计算Morgan-Tanimoto相似性系数以丢弃相似性大于0.4的任何对。由于GEAM在有限的ZINC250K数据库内优化,近一半的分子被移除。相比之下,即使在移除结构冗余对后,Trio*和Trio都保留了超过70%的生成候选物,突显了其生成广度。 可解释性:搜索树可视化与结合模式分析 为什么可解释性对药物发现至关重要: 当前生成模型的黑箱特性是其在药物发现中广泛应用的根本障碍。传统的微调方法(fine-tuning)虽然能优化分子性质,但可解释性受限于黑箱神经网络权重——研究人员无法理解模型为什么生成某个分子,也无法追踪分子优化的路径,导致药物化学家难以合理化或信任设计结果。 Trio的可解释性优势(对照原文Page 5): 相比传统微调方法,Trio通过片段级搜索显著增强了可解释性: 透明的优化轨迹:MCTS的搜索树明确记录了每一步添加了什么片段、为什么选择这个片段(UCT值)、这个选择带来了多少奖励提升。分子优化的整个过程完全可追溯 战略决策过程可视化:片段级的逐步组装透明地反映了算法的战略决策——哪些片段组合被优先探索、哪些路径被放弃、最终的优化分子经历了怎样的演化 灵活的目标调整:可以通过简单地改变奖励函数来调整搜索目标(如增加ADMET性质权重),而无需重新微调模型,避免了微调方法的计算开销 人在环中的工作流程:研究人员可以在搜索过程中介入,基于化学直觉修剪不合理的分支或引导探索方向,实现AI与专家知识的协同 双重可解释性设计: Trio提供了两个层次的可解释性:(1)搜索树可视化——展示分子是如何一步步构建出来的;(2)结合模式分析——解释为什么这个分子能与靶蛋白紧密结合。 图5:Trio框架逐步生成机制和生成配体与靶蛋白结合口袋之间分子间相互作用的示意 (a) 基于靶标的全新生成的蒙特卡洛树搜索示意图:从[BOS]根标记开始,通过迭代片段添加(第1-5层)构建分子,并由AutoDock Vina分数优先排序以识别最佳候选物(皇冠图标)。完整搜索树的可视化提供了从头分子设计中罕见的可解释性水平,使研究人员能够系统地追踪候选分子的演化谱系,揭示特定官能团和片段组合如何逐步增强预测结合亲和力。这种颗粒级透明度超越了仅呈现最终优化化合物,提供了可操作的见解,实现更理性的、人在环中的工作流程 (b) 生成的先导物对靶蛋白的预测结合模式:5ht1b、braf、fa7、jak2和parp1结合口袋的详细视图突出了关键的非共价相互作用。接触用颜色编码:疏水(暖粉色虚线)、氢键(森林绿色实线)和$\pi-\pi$堆积(青色虚线)。相互作用分析揭示这些化合物实现了异常有利的预测结合自由能,并参与关键的非共价相互作用。表格展示Trio生成配体的Vina分数大幅超越参考化合物,平均提升46.0% Q&A Q1: 为什么Trio*在结合亲和力上优于完整Trio,但在实际应用中推荐使用完整Trio? A1: Trio*(无DPO约束)专注于最大化对接分数,采用无约束的探索策略实现了最佳结合亲和力。然而,这种单一目标优化常常以牺牲类药性QED和合成可及性SA为代价。完整Trio通过DPO将生成过程与多个药理学性质对齐,在三个维度(结合亲和力、QED、SA)上实现了优越的平衡。从药物开发的实际角度,一个具有略低对接分数但可合成且类药的分子,远比一个难以合成或具有不良ADMET性质的高亲和力分子更有价值。Trio的设计理念是在效力和可及性之间取得和谐,这对于转化研究至关重要。 Q2: FRAGPT相比SAFEGPT的核心优势是什么?为什么FragSeq表示更优? A2: SAFEGPT依赖于位置数值标记进行片段连接,这些数字干扰了规范环闭合表示法,并随着片段数量的增加提升了句法歧义。具体而言: 句法复杂性:SAFE中的数值连接符(如“9”)会与SMILES中的环索引冲突,导致解析错误 错误累积:数字标记的误预测会级联传播,破坏整个分子的有效性 语义分离性差:片段之间的连接信息与片段内部化学语义混杂在一起 相比之下,FragSeq通过结构化片段语法将连接语义与环索引解耦,每个片段用[SEP]标记分隔,保持了独立性和语义完整性。实验结果显示,FRAGPT仅用1%的数据即达到SAFEGPT的性能,且有效性接近100%,而SAFEGPT的有效性明显较低,证明了FragSeq表示的优越性。 Q3: MCTS的children-adaptive策略如何动态调整搜索广度?为什么这对分子生成重要? A3: children-adaptive策略通过重要性度量$I(s_t) = \max_{o_i^t} R(s_t, o_i^t) - \bar{R}(s_t) $动态调整节点的分支因子,其中$R(s_t, o_i^t)$是第$i$个子节点的奖励,$\bar{R}(s_t)$是所有子节点的平均奖励。高$I(s_t)$表示子节点间奖励偏差显著,促使算法将子节点数扩展到$n(s_t) = \min(\beta\lfloor I(s_t)\rfloor, c_{\max})$,其中$\beta$控制扩展率,$c_{\max}$施加上限以防止计算过载。 这种机制确保奖励分布波动的节点需要更深入的探索,增强发现高奖励分子候选物的可能性。在分子生成中,这意味着当某个片段添加后出现多种可能的优化方向(奖励分散)时,搜索树会自动增加分支,避免过早收敛到局部最优。相反,当奖励分布稳定时,树会减少分支以提高效率。这种自适应机制是Trio能够同时实现高质量和高多样性的关键因素之一。 关键结论与批判性总结 潜在影响 Trio建立了一个可解释、可扩展的分子设计框架,通过搜索树可视化提供了前所未有的透明度,使药物化学家能够理解和信任AI生成的分子,促进了生成模型与专家驱动药物发现之间的人在环中工作流程 通过整合上下文感知片段建模、性质约束强化学习和原则性组合搜索,Trio实现了泛化、可信性和可解释性的统一,为自主闭环发现系统奠定了基础,代表了AI驱动药物发现范式的转变 在5个不同靶点上的一致性优势(无论受体类型或结构复杂性)表明,MLM与树搜索的结合稳健地泛化到不同生物学上下文,规避了纯数据驱动或规则约束方法中常见的靶点可转移性问题 分子多样性相比基线方法提升4倍以上,表明Trio克服了静态片段库的限制,能够探索远离训练分布的新颖化学空间,为发现新型骨架提供了可能 局限性 蛋白-配体数据的泛化挑战:尽管Trio通过大规模化学语料库预训练在一定程度上克服了实验解析蛋白-配体复合物数据的稀缺问题,但特定靶点的结构数据仍然有限,可能影响模型在全新靶点家族上的泛化性能和鲁棒性 性质优化范围有限:DPO当前仅对齐QED和SA两个性质,未考虑更广泛的ADMET性质(如溶解度、代谢稳定性、血脑屏障渗透性、hERG毒性等),这些是候选化合物从计算设计推进到临床试验的关键药代动力学瓶颈 未来研究方向 根据原文Conclusion部分(Page 16)提出的展望,Trio框架可以在以下三个方向进行扩展,以进一步提升其应对难治性生物学靶点的能力: 逆合成推理整合:将逆合成分析嵌入到MCTS的奖励函数中,使生成的分子不仅满足合成可及性指标SA,而且具有明确的、经济可行的逐步合成路线,进一步缩小计算设计与实验验证之间的差距 更复杂的ADMET导向奖励函数:扩展性质对齐框架以整合预测的溶解度、代谢稳定性、毒性等多维ADMET性质,实现更全面的药理学优化,提升候选分子的临床转化潜力和药物开发成功率 扩展片段词汇表:整合RECAP、MMPA等其他片段化策略,或通过无监督学习自动发现新型片段类型,进一步拓展可访问的化学空间,增强对非传统靶点(如蛋白-蛋白相互作用、RNA靶点等)的适用性
Machine Learning & AI
· 2026-01-01
ADSeqGAN:辅助判别器增强的小样本分子生成框架
ADSeqGAN:辅助判别器增强的小样本分子生成框架 本文信息 标题: Auxiliary Discriminator Sequence Generative Adversarial Networks for Few Sample Molecule Generation 作者: Haocheng Tang, Jing Long, Beihong Ji, Junmei Wang 发表时间: 2025年9月 单位: University of Pittsburgh (美国匹兹堡大学) 引用格式: Tang, H., Long, J., Ji, B., & Wang, J. (2025). Auxiliary Discriminator Sequence Generative Adversarial Networks for Few Sample Molecule Generation. Journal of Chemical Information and Modeling, 65(24), 10311-10322. https://doi.org/10.1021/acs.jcim.5c01737 GitHub代码库: https://github.com/allowbreak.com/ClickFF/ADSeqGAN 和 https://github.com/HaCTang/ADSeqGAN SeqGAN原始论文 WGAN-GP原始论文 摘要 本文提出了辅助判别器序列生成对抗网络(ADSeqGAN),一种针对小样本数据集的新型分子生成方法。传统生成模型在训练数据有限时往往表现不佳,特别是在药物发现领域,针对特定治疗靶点(如核酸结合剂和中枢神经系统药物)的分子数据集极为稀缺。ADSeqGAN通过将预训练的随机森林分类器作为辅助判别器整合到GAN框架中,显著提升了分子生成质量和类别特异性。该方法结合了预训练生成器和Wasserstein距离,增强了训练稳定性和多样性。我们在三个代表性案例中评估了ADSeqGAN:首先,在核酸和蛋白靶向分子数据集上,ADSeqGAN在生成核酸结合剂方面表现出色;其次,通过过采样策略,显著改善了CNS药物生成,产率超过传统从头设计模型;第三,在大麻素受体1型(CB1)配体设计中,ADSeqGAN生成的新型类药分子中32.8%被预测为活性化合物,优于CB1专用库和通用库。总体而言,ADSeqGAN为数据稀缺场景下的分子设计提供了一个通用框架。 核心结论 ADSeqGAN整合随机森林辅助判别器,显著提升小样本场景下的分子生成质量 在核酸结合剂生成任务中,验证SMILES率和产率均超过基线模型 通过少数类过采样策略,CNS药物生成率提升明显,同时保持多样性 CB1配体设计中,预测活性化合物比例达32.8%,优于专用和通用化合物库 证明了迁移学习和数据增强在小样本分子生成中的有效性 背景 分子生成是现代计算药物发现的基石,为设计具有期望性质的新型化合物提供了创新途径。近年来,多种生成方法涌现,按生成目标和分子表示方式分类:从SMILES字符串、分子图到分子指纹和3D点云;从RNN、GAN、VAE到扩散模型和大语言模型。 在所有分子表示中,SMILES符号因其简洁性、数据库广泛可用性和工具支持而脱颖而出。其序列表示使其特别适合自然语言处理(NLP)技术,进一步降低了计算和存储成本。这使得基于SMILES的方法在通过分子性质引导化合物空间扩展方面具有显著优势。 GAN作为经典生成模型,相比VAE和扩散模型具有关键优势:通过避免高斯先验假设,GAN更适合非高斯分布的数据集;此外,GAN避免了最大似然估计(MLE),虽然MLE可以稳定优化,但会限制生成多样性。多年来,许多GAN变体被提出以解决序列生成的特定挑战,包括SeqGAN(利用策略梯度优化序列输出)和ORGAN(通过强化学习整合任务特定奖励)。 然而,小样本学习仍是分子生成的核心挑战。对于SMILES生成模型,训练过程需要同时解决两个目标:(1)学习SMILES符号的语法规则以确保有效分子生成;(2)捕获数据集内分子的结构和功能特征。实现这些目标通常需要大量数据和精心调整的网络参数。但在药物发现中,针对特定治疗靶点的高质量数据集极为稀缺,如核酸结合剂和CNS药物。 关键科学问题 本文旨在解决以下核心问题: 小样本分子生成:如何在数据极度稀缺(如仅有几百个样本)的情况下,生成高质量、类别特异的分子? 类别不平衡:如何处理极度偏斜的数据集(如CNS药物仅占1-2%),在生成多数类分子的同时,确保少数类的充分代表性? 迁移学习应用:如何利用相关但不完全匹配的辅助数据集(如蛋白结合剂辅助核酸结合剂生成)提升模型性能? 判别器设计:如何设计更符合化学直觉的判别器,整合分子描述符等先验知识? 创新点 辅助判别器架构:首次将预训练的随机森林分类器作为辅助判别器整合到序列生成GAN中,利用分子描述符提供的先验知识 混合数据集训练:提出在相关辅助类别(如蛋白结合剂)上训练,生成目标类别(核酸结合剂)分子的策略 少数类过采样:针对极度不平衡数据集,创新性地采用过采样策略增强少数类表示 多重奖励机制:设计对抗奖励和辅助奖励的线性组合,引入长度加权和重复惩罚 系统验证:在核酸结合剂、CNS药物、CB1配体三个代表性场景中全面验证方法的通用性 研究内容 ADSeqGAN模型架构 图1:ADSeqGAN工作流程 Build Dataset:数据集包含类别标签(至少2个不同分子类别)和SMILES字符串 Pretrain Discriminators:使用RDKit/OpenBabel计算分子描述符或指纹,选择具有强分辨力的描述符构建分类器,添加结构限制获得预训练判别器D Train ADSeqGAN:生成器G输入带标签的起始token,通过强化学习生成不同类别的合成数据。主判别器(CNN)区分真实与生成样本,预训练判别器进行分类。通过蒙特卡洛采样生成分子,每个token的奖励是对抗奖励和辅助奖励的线性组合(权重λ),通过策略梯度反向传播。引入长度加权和重复惩罚提升质量 核心算法设计 辅助判别器目标函数 对于每个辅助判别器$D_n$,优化函数为: \[\min_{G} V(D_n, G) = \mathbb{E}_{Y|c \sim p_{\text{data}}(Y|c)} [\log D_n(Y|c)]\] 其中: \(D_n(Y) = a_c C_n(Y) + b_c\) $C_n$:分类器函数 $a_c, b_c$:基于先验知识的结构限制 这个公式让辅助判别器成为“类别专家”:它通过随机森林分类器$C_n$对生成的分子进行评分,$a_c$和$b_c$是根据化学知识设定的结构限制(如分子量范围、亲脂性等)。通过最小化该目标函数,生成器学会生成能被正确分类的、符合目标类别特征的分子。这就像是让学生不仅要会做题,还要理解题目背后的知识点分类。 总体训练目标 \[\min_{G} \max_{D_{adv}} V(D_{adv}, \{D_n\}_{n=1}^{N}, G)\] \[V = \mathbb{E}_{Y \sim p_{\text{data}}(Y)} [\log D_{adv}(Y)] + \mathbb{E}_{Y \sim p_G(Y)} [\log(1 - D_{adv}(Y))] + \sum_{n=1}^{N} \lambda_n V(D_n, G)\] 其中$\lambda_n$控制辅助判别器的权重。 这是ADSeqGAN的“综合评分体系”:包含三个部分的平衡。第一项让主判别器$D_{adv}$给真实分子高分,第二项让它给生成分子低分(这是标准GAN的对抗训练);第三项是所有辅助判别器的加权贡献,确保生成的分子不仅“看起来真实”,还要“属于正确的类别”。通过调整权重$\lambda_n$,我们可以控制模型是更注重真实性还是类别特异性。这就像是评价一幅画作:既要画得逼真(对抗目标),又要符合特定画派风格(辅助目标)。 策略梯度与奖励设计 生成器通过策略梯度更新: \[\nabla_\theta J(\theta) = \mathbb{E}_{Y \sim p_\theta} [R(Y) \nabla_\theta \log p_\theta(Y)]\] 策略梯度就像机器学习中的“方向指引”:告诉生成器参数该如何调整才能产生更高质量的分子。如果某个token选择得到了高奖励,梯度就会让模型更倾向于未来做出同样的选择。 总奖励为对抗奖励和辅助奖励的加权和: \[R_{\text{total}}(Y) = \lambda R_{\text{adv}}(Y) + (1 - \lambda) R_{\text{aux}}(Y)\] 奖励增强机制: 长度加权:惩罚过长或过短的SMILES \(w_{\text{length}} = \exp\left(-\frac{(L - L_{\text{target}})^2}{2\sigma^2}\right)\) 这个公式就像“分子大小调温器”:长度接近目标得高分,过长过短都减分。$\sigma$参数控制容差范围。 重复惩罚:检测并惩罚重复的子结构模式 训练策略优化 1. 生成器预训练 采用最大似然估计(MLE)在真实SMILES数据上预训练生成器,学习基本的SMILES语法规则: \[L_{\text{MLE}} = -\mathbb{E}_{Y \sim p_\theta} [\log p_\theta(Y)]\] 这个公式让模型“模仿真实分子”:通过最大化真实SMILES序列的概率,模型学习化学语言的基本规则。 2. Wasserstein距离 采用Wasserstein GAN(WGAN)目标函数提升训练稳定性: \[W(p_{\text{data}}, p_G) = \sup_{\|D\|_L \leq 1} \left[ \mathbb{E}_{Y \sim p_{\text{data}}} [D(Y)] - \mathbb{E}_{Y \sim p_G} [D(Y)] \right]\] Wasserstein距离就像“搬运成本”:计算把真实分布“搬运”到生成分布的最小成本。通过最大化这个成本差,判别器能更好地区分真假数据,避免传统GAN的梯度消失问题。 使用gradient penalty强制Lipschitz约束。 3. 过采样策略 对于极度不平衡数据集(如CNS药物占比<2%): 对少数类样本进行过采样(重复采样) 在混合数据集上训练模型 生成时指定少数类标签引导生成 案例一:核酸与蛋白结合剂生成 数据集: 核酸结合剂(NA binders):约600个样本(少数类) 蛋白结合剂(Protein binders):约6000个样本(多数类,辅助数据) 实验设置: 对比模型:仅在NA数据集上训练的SeqGAN和ORGAN ADSeqGAN:在NA+Protein混合数据集上训练,辅助判别器基于分子描述符 图2:ADSeqGAN在核酸和蛋白数据集上的训练结果 图2A:NA产率随训练轮数的变化。输入”NA”标签时NA产率显著增加,输入”Pro”标签时显著降低,证明模型对标签具有强响应能力。产率 = unique_ratio × verified_ratio × NA_ratio 图2B:NLDock对接结果。灰色球体为原始结合剂(天然构象),红色球体为生成样本。在8个靶标(1C9Z/1EEL为DNA,2L94/6XB7为RNA)中的7个上,许多生成分子的结合亲和力超过原始结合剂 图2C:标签响应性与训练轮数的关系。响应性指标通过计算NA结合剂产率比值的Log10得到,分子是输入”NA”标签后的NA产率,分母是输入”Pro”标签后的NA产率。模型逐渐学习到核酸和蛋白靶向小分子的特征,最优产率均>50%,远高于基线模型 结果: 模型 数据集 有效SMILES率(%) NA binders产率(%) 新颖性(%) SeqGAN NA only 76.3 45.2 68.4 ORGAN NA only 79.1 48.6 71.2 ADSeqGAN NA + Protein 91.5 67.8 74.3 关键发现: ADSeqGAN的有效SMILES率提升约12-15% NA binders产率提升约19-22%,证明辅助数据集和辅助判别器的有效性 新颖性略有提升,表明模型不仅复制训练数据,而是学到了类别特征 案例二:CNS药物生成 数据集: CNS药物:约300个样本(仅占总数据集的1.5%) 非CNS药物:约20,000个样本 挑战:极度不平衡的数据集导致模型倾向生成多数类分子。 策略: 对CNS药物样本进行10倍过采样 训练时权重调整,增强CNS类别的学习 图3:消融实验结果 图3A:MinMax正则化对分子长度的影响。橙色为无MinMax,蓝色为有MinMax;实线为NA标签,虚线为Pro标签。MinMax正则化稳定训练过程,减小分子长度波动 图3B:长度权重对训练过程中生成分子的长度、验证率和唯一率的影响(在SeqGAN框架下运行)。增加长度权重导致平均长度增长,验证率和唯一率下降,表明序列长度与分子多样性正相关,与验证率负相关 图3C:随机数对训练过程中分子长度的影响 图3D:第40轮epoch时不同随机数生成样本的Tanimoto相似性矩阵。不同随机数导致结构差异显著,建议使用多个随机数实验以获得更广泛多样性 图4:ADSeqGAN在CNS和非CNS药物数据集上的训练结果 图4A:采样策略对CNS药物产率的影响。展示不同过采样倍数(1×、3×、10×)对CNS药物生成率的提升效果 图4B:原始数据集和四种小样本分子生成模型的CNS_MPO统计结果。CNS_MPO评分越大越好 图4C:小样本生成算法在CNS药物生成任务上的多项指标评估,包括有效性、新颖性、唯一性等 图4D:生成分子与多个CNS靶标的MOE对接结果。绿色棍状结构为原始分子,红色棍状结构为生成样本。4MM5是LeuBAT(delta13突变体)与舍曲林的复合物,6AWP是人5-羟色胺转运蛋白ts3与氟伏沙明的复合物 结果: 模型 CNS生成率(%) 有效SMILES率(%) 类药性(Druglikeness)(%) SeqGAN 3.2 82.1 76.4 ORGAN 4.7 84.3 78.2 ADSeqGAN (无过采样) 5.8 86.5 79.1 ADSeqGAN (10×过采样) 18.4 88.2 81.3 关键发现: 过采样策略使CNS生成率从5.8%跃升至18.4%,提升约3倍 有效SMILES率和类药性同步提升 证明了ADSeqGAN在极度不平衡数据集上的适用性 案例三:CB1配体设计 数据集: CB1受体配体:约3000个已知配体,包含抑制常数$k_i$值 数据集相对平衡 任务:生成新型CB1配体候选 评估方法: 使用MACCS指纹作为描述符构建分类模型 应用类药性过滤器(QED评分、Lipinski五规则) 使用靶标特异性LRIP-SF评分函数预测活性(AUC=0.91) 以$pK_i = 6$(对应1 μM)为阈值判定活性 关键发现: ADSeqGAN生成分子的预测活性率达32.8% 命中率超过大多数CB1专用化合物库,更远高于通用筛选库 生成的分子具有新颖性和类药性 证明了ADSeqGAN能够为特定药物靶点生成高质量分子 消融实验 为验证各组件的贡献,作者进行了详细的消融研究: 配置 有效SMILES率(%) 目标类产率(%) 基线SeqGAN 78.2 46.3 +预训练生成器 82.5 (+4.3) 49.1 (+2.8) +WGAN目标 84.1 (+5.9) 51.7 (+5.4) +辅助判别器 88.3 (+10.1) 62.4 (+16.1) 完整ADSeqGAN 91.5 (+13.3) 67.8 (+21.5) 关键洞察: 辅助判别器贡献最大,单独提升目标类产率约10% 预训练和WGAN各自贡献约2-5%的性能提升 组件协同效应明显,完整模型性能超过单独组件之和 Q&A Q1: 为什么选择随机森林而非深度神经网络作为辅助判别器? A1: 小样本友好:随机森林在小数据集上表现稳定,不易过拟合 可解释性:基于决策树的特征重要性分析可以揭示哪些分子描述符对分类最关键 计算效率:训练速度快,预训练成本低 先验知识整合:可以直接使用化学领域知识设计的分子描述符(如Lipinski规则、拓扑指数等) Q2: 辅助数据集的选择有哪些原则?是否任意相关数据都能提升性能? A2: 共享底层特征:辅助数据应与目标数据在某些分子特征上有重叠(如都是小分子药物) 适度差异性:过于相似会导致判别器无法区分,过于不同则迁移效果差 数量平衡:辅助数据不宜过多(避免压倒目标数据),也不宜过少(无法提供足够信息) 实验表明:蛋白结合剂辅助核酸结合剂生成效果好,但如果用完全不相关的类别(如聚合物)则无帮助 Q3: 过采样策略是否会导致过拟合?如何平衡过采样比例? A3: 过拟合风险:确实存在,过度过采样会导致模型记忆少数类样本而非学习其分布 缓解策略: 结合数据增强(如SMILES的不同写法、等价表示) 正则化技术(dropout、权重衰减) 验证集监控(若验证性能下降则停止) 经验法则:本文实验中10倍过采样效果最佳,更高倍数(如50倍)导致性能下降 动态调整:可根据生成分子的类别分布动态调整过采样比例 Q4: ADSeqGAN生成的分子如何进一步筛选和验证? A4: 计算筛选: 分子对接评估结合亲和力 靶标特异性评分函数(如本文的LRIP-SF) ADMET性质预测(吸收、分布、代谢、排泄、毒性) 实验验证: 优先合成top-ranked分子 体外酶活性测定 细胞水平功能验证 迭代优化:将实验反馈纳入下一轮生成(主动学习) Q5: 模型的训练时间和计算资源需求如何?是否适合实际药物发现流程? A5: 训练成本: 预训练生成器:2-4小时(单GPU,如RTX 3090) 辅助判别器训练:<30分钟(CPU即可) ADSeqGAN对抗训练:6-10小时(单GPU) 生成速度:10,000个分子约5分钟 实用性:相比实验合成和测试(周-月级别),计算成本可忽略,完全适合集成到药物发现流程 关键结论与批判性总结 主要贡献 ADSeqGAN通过辅助判别器机制有效解决了小样本分子生成难题,在多个实际应用中显著优于基线模型 混合数据集训练和少数类过采样策略为数据稀缺和不平衡场景提供了实用解决方案 在核酸结合剂、CNS药物、CB1配体三个代表性任务中验证了方法的通用性和鲁棒性 系统的消融实验揭示了各组件的贡献,为未来改进提供了清晰方向 局限性 辅助数据集依赖:方法性能依赖于找到合适的辅助数据集,对于全新靶点可能缺乏相关数据 分子描述符选择:当前基于人工选择的描述符,可能遗漏深度特征 生成多样性:虽有改善,但相比扩散模型等最新方法,多样性仍有提升空间 大分子局限:SMILES表示对大分子(如多肽、大环)效果较差,未来可扩展到图表示 实验验证缺失:论文主要基于计算预测,缺乏湿实验验证生成分子的实际活性 未来研究方向 自动化辅助数据选择:开发算法自动识别和整合最佳辅助数据集 多模态辅助判别器:整合分子图、3D构象等多种表示的判别器 主动学习集成:将生成模型与主动学习循环结合,利用实验反馈迭代优化 大分子扩展:开发基于图神经网络的辅助判别器,支持大分子和生物大分子生成 可解释性增强:分析辅助判别器学到的特征,揭示分子设计的化学原理 多靶点联合优化:扩展到同时优化多个靶点活性和ADMET性质的多目标生成
Machine Learning & AI
· 2025-11-19
分子性质预测:机器学习回归算法详解(三)高级模型与应用指南
分子性质预测:机器学习回归算法详解(三)高级模型与应用指南 系列导航: 第一篇:基础回归模型 - 线性模型、支持向量机、近邻方法 第二篇:树模型与梯度提升 - 决策树、随机森林、XGBoost/LightGBM等 第三篇:高级模型与应用指南(本文)- 神经网络、概率模型、VAE、模型选择指南 导读 系列最终篇将介绍高级回归模型和完整的应用指南: 神经网络:深度学习在回归任务中的应用 概率模型:高斯过程等提供不确定性量化的模型 深度生成模型:VAE在特征学习中的应用 模型选择指南:如何根据数据特征、应用场景、计算资源选择最合适的模型 本篇将帮助你构建完整的回归模型工具箱,并在实际项目中做出最佳选择。 1. 神经网络 1.1 MLPRegressor(多层感知机回归器) 核心思想:通过多层非线性变换学习复杂的特征表示。 sklearn实现:from sklearn.neural_network import MLPRegressor 前向传播: \(\mathbf{h}^{(1)} = \sigma(\mathbf{W}^{(1)}\mathbf{x} + \mathbf{b}^{(1)})\) \(\mathbf{h}^{(2)} = \sigma(\mathbf{W}^{(2)}\mathbf{h}^{(1)} + \mathbf{b}^{(2)})\) \(\hat{y} = \mathbf{W}^{(3)}\mathbf{h}^{(2)} + \mathbf{b}^{(3)}\) 其中 $\sigma$ 是激活函数(ReLU、Tanh等)。 特点: ✅ 强大表达能力:理论上可拟合任意函数 ✅ 特征学习:自动提取高层特征 ❌ 需要大量数据:小样本易过拟合 ❌ 调参困难:学习率、隐藏层结构等 ⚙️ 关键参数: hidden_layer_sizes:隐藏层结构(如 (128, 64, 32)) alpha:L2正则化强度 learning_rate_init:初始学习率 📊 推荐场景:特征复杂、样本充足的大规模分子性质预测 2. 概率模型 2.1 GaussianProcessRegressor(高斯过程回归器) 核心思想:将函数本身建模为高斯过程,通过核函数定义点之间的相关性。 sklearn实现:from sklearn.gaussian_process import GaussianProcessRegressor 预测分布(在观测数据 $\mathcal{D}$ 下): \(p(f(\mathbf{x}_*) | \mathcal{D}) = \mathcal{N}(\mu_*, \sigma_*^2)\) 其中均值和方差由核函数 $k(\mathbf{x}, \mathbf{x}’)$ 计算得出。 特点: ✅ 优雅的不确定性量化:提供完整的预测分布 ✅ 小样本友好:数十个样本即可建模 ❌ 计算复杂度高:$O(n^3)$,样本数 >1000 时不可行 ⚙️ 关键参数: kernel:核函数(RBF、Matérn等) alpha:噪声水平 📊 推荐场景:高价值小样本分子数据,主动学习 2.2 概率模型家族对比 模型 sklearn实现 不确定性量化 核心优势 计算复杂度 适用数据规模 推荐场景 BayesianRidge BayesianRidge ✓ 自动正则化,无需调参 $O(n^3)$ 小-中等 需要不确定性估计 GaussianProcessRegressor GaussianProcessRegressor ✓ 完整预测分布,小样本友好 $O(n^3)$ 小样本(<1000) 高价值小样本 ARDRegressor ARDRegressor ✗ 极致特征选择 $O(n^3)$ 任意大小 超高维稀疏 对比要点: 不确定性量化:只有GaussianProcessRegressor提供完整的预测分布 计算复杂度:BayesianRidge < ARDRegressor < GaussianProcessRegressor 适用规模:GaussianProcessRegressor受限于小样本,其他两者适用任意规模 特征选择能力:ARDRegressor > BayesianRidge > GaussianProcessRegressor 3. 深度生成模型 3.1 VAE(变分自编码器) 核心思想:通过编码器-解码器架构学习数据的低维潜在表示,同时利用变分推断确保潜在空间的平滑性。 模型架构: \(\text{Encoder}: \mathbf{x} \rightarrow \mathcal{N}(\mu(\mathbf{x}), \sigma^2(\mathbf{x}))\) \(\text{Latent}: \mathbf{z} \sim \mathcal{N}(\mu, \sigma^2)\) \(\text{Decoder}: \mathbf{z} \rightarrow \hat{\mathbf{x}}\) 损失函数: \(\mathcal{L} = \underbrace{\|\mathbf{x} - \hat{\mathbf{x}}\|^2}_{\text{重构损失}} + \beta \cdot \underbrace{D_{KL}(q(\mathbf{z}|\mathbf{x}) \| p(\mathbf{z}))}_{\text{KL散度正则化}}\) 常见变体: VAE(latent=64/128/256):不同潜在维度,平衡压缩率和信息保留 VAE(compact):浅层网络,快速训练 VAE(deep):深层网络,更强表达能力 特点: ✅ 无监督特征学习:自动从向量表示提取深层特征 ✅ 降维能力强:高维指纹→低维潜在向量 ✅ 支持生成:可用于分子生成(虽然主要用于回归) ❌ 训练复杂:需要GPU加速,调参困难 ⚙️ 关键参数: latent_dim:潜在空间维度 beta:KL散度权重(β-VAE) 📊 推荐场景: 高维稀疏数据 需要特征降维的迁移学习 与传统ML模型配合使用 4. 模型选择指南 4.1 按应用场景选择 场景 推荐模型 理由 快速baseline LinearRegression, Ridge, KNeighborsRegressor 训练极快,评估回归模型可行性 追求准确率 XGBoost, LightGBM, RandomForestRegressor 集成学习,性能最佳 小样本(<100) BayesianRidge, GaussianProcessRegressor 贝叶斯方法,提供不确定性 大数据集(>100k) LGBMRegressor, SGDRegressor 内存高效,训练快速 需要可解释性 LinearRegression, Ridge, Lasso, DecisionTreeRegressor 清晰的特征权重或决策规则 数据有离群点 HuberRegressor, TheilSenRegressor, RANSACRegressor, RandomForestRegressor 鲁棒损失函数或集成方法 计数数据 PoissonRegressor 符合数据分布假设 高维稀疏数据 Lasso, ElasticNet, ARDRegressor L1正则化特征选择 深度特征学习 VAE, MLPRegressor 非线性表征学习 不确定性量化 GaussianProcessRegressor, BayesianRidge, QuantileRegressor 提供置信区间或预测分布 复杂非线性 SVR, XGBoost, MLPRegressor 处理复杂的非线性关系 实时预测 LinearRegression, DecisionTreeRegressor 推理速度快 4.2 按数据特征选择 特征维度 低维(<10):任意回归模型 中维(10-100):RandomForestRegressor, GradientBoostingRegressor, Lasso 高维(100-10000):Lasso, ElasticNet, LGBMRegressor, VAE 超高维(>10000):Lasso, ARDRegressor, VAE 样本数量 小样本(<100):LinearRegression, Ridge, GaussianProcessRegressor 中等样本(100-10k):RandomForestRegressor, XGBoost, SVR 大样本(>10k):LGBMRegressor, SGDRegressor, MLPRegressor 超大样本(>100k):LGBMRegressor, SGDRegressor 数据质量 噪声小:任意回归模型 中等噪声:RandomForestRegressor, GradientBoostingRegressor 噪声大/有离群点:HuberRegressor, TheilSenRegressor, RANSACRegressor, QuantileRegressor 4.3 按计算资源选择 资源限制 推荐模型 避免模型 内存有限 LinearRegression, Ridge, SGDRegressor, LGBMRegressor RandomForestRegressor(n_estimators大), GaussianProcessRegressor CPU有限 LinearRegression, Ridge, DecisionTreeRegressor SVR(大数据集), GradientBoostingRegressor 有GPU MLPRegressor, VAE, XGBoost/LGBMRegressor(GPU版本) - 需要快速训练 LinearRegression, Ridge, DecisionTreeRegressor, LGBMRegressor SVR, GaussianProcessRegressor, MLPRegressor 需要快速预测 LinearRegression, Ridge, RandomForestRegressor(小) KNeighborsRegressor, GaussianProcessRegressor 4.4 集成学习策略 为什么要集成? 单个模型可能有偏差 不同模型捕捉不同的数据模式 集成通常能提升1-5%的性能 简单集成方法: 平均集成(Averaging) from sklearn.ensemble import VotingRegressor ensemble = VotingRegressor([ ('rf', RandomForestRegressor()), ('xgb', XGBRegressor()), ('lgbm', LGBMRegressor()) ]) 适用场景:模型性能相近 Stacking from sklearn.ensemble import StackingRegressor base_estimators = [ ('rf', RandomForestRegressor()), ('xgb', XGBRegressor()), ('lgbm', LGBMRegressor()) ] stacking = StackingRegressor( estimators=base_estimators, final_estimator=Ridge() ) 适用场景:模型差异大,追求极致性能 5. 实战建议 本系列介绍了覆盖从经典到前沿的30+种机器学习回归模型,形成了完整的回归算法生态: 第一篇:基础回归模型 线性模型家族:从简单的线性回归到鲁棒回归、广义线性模型 支持向量回归:处理非线性关系的经典方法 近邻方法:基于相似性的简单有效算法 第二篇:树模型与梯度提升 决策树与森林回归器:强大泛化,特征重要性分析 梯度提升回归器:准确性之王,竞赛首选 第三篇:高级模型与应用指南 神经网络回归器:深度学习,复杂模式捕捉 概率回归模型:不确定性量化,贝叶斯框架 深度生成模型:VAE提供特征学习与降维能力 完整的模型选择指南:按场景、数据特征、计算资源选择最合适的模型 模型选择决策树 graph TB Start[开始] --> Q1{数据量<100?} Q1 -->|是| M1[GaussianProcessRegressor<br/>BayesianRidge] Q1 -->|否| Q2{特征维度>1000?} Q2 -->|是| M2[Lasso / ElasticNet<br/>VAE] Q2 -->|否| Q3{需要可解释性?} Q3 -->|是| M3[LinearRegression / Ridge<br/>Lasso / DecisionTree] Q3 -->|否| Q4{追求极致性能?} Q4 -->|是| M4[XGBoost / LightGBM<br/>Stacking] Q4 -->|否| M5[RandomForestRegressor] style Start fill:#e1f5ff style M1 fill:#d4edda style M2 fill:#d4edda style M3 fill:#d4edda style M4 fill:#d4edda style M5 fill:#d4edda style Q1 fill:#fff3cd style Q2 fill:#fff3cd style Q3 fill:#fff3cd style Q4 fill:#fff3cd 最后的建议 记住:没有万能的回归器,只有最适合的回归器 实战流程建议: 快速baseline(1小时):LinearRegression, Ridge, KNeighbors 性能优化(半天):RandomForest, XGBoost, LightGBM 鲁棒性验证(几小时):鲁棒回归,异常值分析 可解释性分析(几小时):特征重要性,SHAP值 集成学习(半天):Stacking或Blending 持续学习: 关注新模型和新方法(如Transformer回归器) 参加Kaggle竞赛积累经验 阅读顶会论文了解前沿进展 Happy Regression Modeling! 🚀 6. 参考资料 Scikit-learn Documentation: https://scikit-learn.org/ XGBoost Documentation: https://xgboost.readthedocs.io/ LightGBM Documentation: https://lightgbm.readthedocs.io/ CatBoost Documentation: https://catboost.ai/docs/ Kingma & Welling (2013). “Auto-Encoding Variational Bayes” Hastie et al. (2009). “The Elements of Statistical Learning” Bishop (2006). “Pattern Recognition and Machine Learning” Rasmussen & Williams (2006). “Gaussian Processes for Machine Learning”
Machine Learning & AI
· 2025-11-15
数据分割的艺术:splito教程
数据分割的艺术:splito教程 splito是一个专门为生命科学领域设计的机器学习数据分割库。本文深入探讨了splito库中各种数据分割方法的原理、应用场景和实现细节,包括基础的骨架分割、基于结构的分割、分子量分割、分层分布分割以及先进的多目标优化分割方法。通过详细的代码示例和实际应用案例,帮助研究人员在药物发现项目中选择合适的数据分割策略。 关于Splito Splito是一个专为辅助药物发现而设计的Python库,通过提供强大的数据解析和分割方法,帮助研究人员和化学家高效处理机器学习项目中的数据。 Splito是Datamol生态系统的一部分:https://datamol.io 安装 可以使用pip安装splito: pip install splito 文档官网:https://splito-docs.datamol.io/stable/ 核心结论 splito提供了从基础到高级的多种专业数据分割方法,覆盖药物发现全流程 骨架分割和结构分割(Perimeter/MaxDissimilarity)测试模型对新化学结构的泛化能力 SIMPD通过多目标优化模拟真实项目中分子性质的时间演进 Lo Splitter评估模型对微小结构修饰的敏感度,专为先导化合物优化设计 MOOD Protocol自动选择最适合特定部署场景的分割策略 背景 在机器学习项目中,特别是在药物发现领域,数据分割是一个至关重要的步骤。模型使用训练集构建,然后在测试集上进行预测评估。测试集预测值与实际活性值的一致程度(通常用R平方等指标量化)作为模型内部一致性的评估指标,也是模型预测能力的指标。然而,预测估计的具体标准取决于选择测试集化合物的标准,与真实前瞻性预测场景相比。 在药物发现项目中,采用各种数据分割策略来训练和评估机器学习模型。这些策略有助于确保模型的性能稳健,并且能够很好地泛化到新的、未见过的数据。常见的分割策略包括随机分割、时间序列分割、基于骨架的分割、分层分割等。 splito库正是为了解决这些数据分割挑战而设计的,它为生命科学领域的研究人员提供了强大的数据解析和分割工具。 研究内容 基础分割方法:骨架分割 骨架分割(ScaffoldSplit)是药物发现中最常用的分割方法之一。这种方法基于公共结构来分割化学数据集,确保训练集和测试集包含不同的化学结构,同时保持骨架的多样性。 方法原理与应用 骨架分割基于公共结构将数据集分区,确保训练集和测试集包含不同的化学骨架,从而评估模型对新化学结构的泛化能力。当骨架对生物活性有显著影响时最有用,通常在先导化合物优化阶段使用。 代码实现 import datamol as dm from splito import ScaffoldSplit # 加载数据 data = dm.data.chembl_drugs() # 初始化分割器 splitter = ScaffoldSplit(smiles=data.smiles.tolist(), n_jobs=-1, test_size=0.2, random_state=111) # 生成训练集和测试集的索引 train_idx, test_idx = next(splitter.split(X=data.smiles.values)) 可视化结果 图1:ScaffoldSplit的化合物UMAP嵌入可视化(蓝色=训练集,橙色=测试集) 图2:ScaffoldSplit的骨架UMAP嵌入可视化(骨架在化学空间中形成明显的分离) 我感觉也没太分开。。。 基于结构的分割方法 PerimeterSplit PerimeterSplit通过迭代选择距离最远的分子对,将位于化学空间边缘的分子放入测试集,测试模型的外推能力。实践发现这种方法能够选出具有更好泛化能力的模型。 图3:PerimeterSplit的UMAP嵌入可视化(测试集分布在化学空间边缘) MaxDissimilaritySplit 最大不相似性分割通过最大化训练集和测试集之间的距离来分割数据。选择两个最不相似的分子分别作为训练集和测试集的“种子”,然后迭代构建,使测试集聚集在化学空间的某个区域,训练集覆盖其余区域。 图4:MaxDissimilaritySplit的UMAP嵌入可视化(最大化训练集与测试集的不相似性) 代码实现 import datamol as dm import splito # 加载数据 data = dm.data.freesolv() # 定义PerimeterSplit splitter = splito.PerimeterSplit(n_jobs=-1, test_size=0.2, random_state=111) train_idx, test_idx = next(splitter.split(X=data["smiles"].values)) # 定义MaxDissimilaritySplit splitter = splito.MaxDissimilaritySplit(n_jobs=-1, test_size=0.2, random_state=111) train_idx, test_idx = next(splitter.split(X=data.smiles.values)) 其他有用的分割方法 MolecularWeightSplit 分子量分割通过按分子量对分子进行排序,然后找到合适的分割点将分子分成两个集合。应用场景是训练一个能够从小分子学习SAR并旨在泛化到更大分子的模型。 splitter = splito.MolecularWeightSplit(test_size=0.2, random_state=111, generalize_to_larger=True) train_idx, test_idx = next(splitter.split(X=data.smiles.tolist())) 图5:MolecularWeightSplit的分子量分布(橙色=训练集小分子,蓝色=测试集大分子) 图6:MolecularWeightSplit的UMAP嵌入可视化 StratifiedDistributionSplit 分层分布分割使用实验测量值来分割数据集,使得训练集、测试集和验证集都具有相同的值分布。而不是使用某种间隔进行分箱,我们将使用测量值的一维聚类。 splitter = splito.StratifiedDistributionSplit(test_size=0.2, random_state=111) train_idx, test_idx = next(splitter.split(X=data["smiles"].tolist(), y=data.expt.tolist())) 图7:StratifiedDistributionSplit的值分布(蓝色和橙色曲线重合,保持相同分布) 高级多目标优化分割:SIMPD SIMPD(Simulated Medicinal Chemistry Project Data,模拟药物化学项目数据)是一种基于多目标遗传算法的高级数据分割方法,由ETH Zurich和诺华生物医学研究所开发。 方法原理 核心思想:模拟真实药物化学项目中的时间分割(time-split)场景。在真实的药物发现项目中,后期化合物通常在分子性质上优于早期化合物。SIMPD使用多目标遗传算法,基于对诺华130多个先导化合物优化项目的深入分析,将公开数据集分割成模拟这种早期/后期差异的训练集和测试集。 关键特征: 模拟时间演进:测试集模拟项目后期的化合物,具有更优的分子性质谱 基于真实项目经验:目标函数源自对130多个真实药物化学项目早期和后期化合物差异的广泛分析 多目标优化:同时优化8个目标,涵盖分子性质、活性分布、化学空间覆盖等多个维度 金标准替代:为缺乏真实时间序列数据的公开数据集提供了time-split验证的替代方案 应用场景 药物开发项目中后期化合物通常在分子性质谱中具有改进特征(更大分子量、新骨架、增强活性等)。SIMPD为模型泛化能力提供了稳健估计,在先导化合物优化阶段非常有价值。 八个优化目标 SIMPDSplitter选择了八个目标用于MOGA,基于NIBR药物发现项目中训练集和测试集之间描述符差异和空间统计的分析: 分子性质差异目标(1-4): $\Delta_{\text{test-train}}\text{median(SA_Score)}=0.28$ - 合成可及性评分差异 $\Delta_{\text{test-train}}\text{median(HeavyAtomCount)}=3.1$ - 重原子数差异 $\Delta_{\text{test-train}}\text{median(TPSA)}=13.2$ - 拓扑极性表面积差异 $\Delta_{\text{test-train}}\text{median(fr_benzene/1000\ HeavyAtoms)}=-8.8$ - 苯环比例差异 活性分布目标(5-6): $\text{frac}_{\text{active}}(\text{train})=\text{value from dataset}$ - 训练集活性分子比例 $\text{frac}_{\text{active}}(\text{test})=\text{value from dataset}$ - 测试集活性分子比例 空间统计目标(7-8): $10<\sum_{G}-\sum_{F’}<30$ - 控制测试集的空间聚集程度 $\sum_{G}>70$ - 确保测试集内部有足够的空间分离 其中G函数衡量测试集内部点之间的距离分布,F函数衡量测试集到训练集的距离分布,这两个空间统计指标确保训练集和测试集在化学空间中既有区分又有合理的覆盖。 代码实现 from splito.simpd import SIMPDSplitter # 初始化分割器 simpd_splitter = SIMPDSplitter( n_splits=5, pop_size=500, ngens=10, target_GF_delta_window=(10, 30), target_G_val=70 ) # 拟合数据集并分割 result = simpd_splitter.fit(data[mol_col].values, data[data_col].values) train_idx, test_idx = next(simpd_splitter.split(data[mol_col].values)) 可视化结果 图8:SIMPDSplit的UMAP嵌入可视化(蓝色=测试集,橙色=训练集,点的大小表示溶解度类别) 先导化合物优化专用分割:Lo Splitter Lo Splitter(Lead Optimization Splitter,先导化合物优化分割器)是专门为先导化合物优化阶段和分子生成任务设计的数据分割方法。 通俗理解 问题场景:假设你已经找到一个有潜力的药物分子(先导化合物),现在需要对它进行“微调”——比如把一个甲基换成乙基,或者改变一个取代基的位置。这些微小改动可能显著影响药效。 传统方法的问题:ScaffoldSplit等方法测试的是模型能否预测“完全不同骨架”的分子,但在先导优化阶段,我们更关心模型能否区分“长得很像但性质不同”的分子。 Lo Splitter的解决方案:创建由“长得很像的分子小团体”组成的测试集,每个团体保留一个分子在训练集(模拟已知的先导化合物),其余放入测试集。这样就能评估模型是否真的理解“把-CH₃换成-C₂H₅会让活性提高2倍”这种细微差异。 方法原理 Lo Splitter通过创建一个由相似分子簇组成的测试集来解决这个需求: 测试集由相似分子簇组成:每个簇包含结构相似的分子 簇内性质变化大于实验噪声:确保簇内的性质差异是真实的,而不是测量误差 每个测试簇中恰好一个分子移到训练集:模拟已知的先导化合物 这种设计使我们能够评估模型识别微小修改的能力,帮助我们选择最适合先导化合物优化或作为分子生成评分器的模型。与其他分割方法不同,Lo splitter不仅能区分不同骨架,还能“理解”不同取代基如何影响性质。 图9:Lo Splitter概念图(测试集由相似分子簇组成,每个簇保留一个分子在训练集作为已知先导) 关键参数 threshold(默认0.4):ECFP4 1024位Tanimoto相似度阈值。相似度高于此阈值的分子被认为非常相似,可以归为一个簇 min_cluster_size(默认5):每个簇的最小分子数量 max_clusters(默认50):算法在找不到更多合适的簇或达到此限制时停止 std_threshold(默认0.60):簇内标准差阈值。只选择簇内变化超过噪声变化的簇。默认值0.60是ChEMBL中logKi数据的噪声标准差。如果使用内部高质量数据,可以设置为0.2左右 代码实现 from splito.lohi import LoSplitter from scipy.stats import spearmanr # 初始化并分割 lo_splitter = LoSplitter(threshold=0.4, min_cluster_size=5, std_threshold=0.60) train_idx, cluster_idx = lo_splitter.split(data['smiles'], data['calc']) # 评估:计算每个簇内的Spearman相关系数 cluster = data.iloc[cluster_idx[0]] spearman_score = spearmanr(cluster['calc'], predict(model, cluster))[0] 评估指标:使用Spearman秩相关系数在每个簇内计算并跨簇平均,归一化后在-1(完全错误)、0(随机)和1(理想)之间。 自动选择最佳分割方法:MOOD Protocol MOOD(Multi-Objective Optimization for Dataset splitting,多目标数据集分割优化)协议是一种元方法,它能够自动选择最适合特定数据集和部署场景的分割策略。 通俗理解 问题场景:你有一堆分割方法(随机分割、骨架分割、Perimeter分割等),不知道选哪个?每个方法都声称自己好,但哪个真正适合你的项目? 部署集/部署场景:模型训练好后,在实际应用中需要预测的那些新分子。比如临床候选药物、虚拟筛选得到的化合物等。 核心思想:假设你知道模型最终要预测什么样的分子(部署场景)。MOOD的逻辑是——好的分割方法应该让测试集和未来要预测的分子”距离训练集的远近程度”相似。 类比:就像高考模拟题,好的模拟题应该和真实高考题“难度分布”相似。如果模拟题都是简单题,但高考全是难题,那模拟考高分也没用。MOOD通过计算“测试集离训练集有多远”是否接近“未来要预测的分子离训练集有多远”,来评判哪种分割方法更靠谱。 实际应用:比如你训练模型是为了预测“临床候选药物”的性质,那就应该用临床候选药物作为部署场景的参考。MOOD会帮你选择一个分割方法,使得测试集和临床候选药物在化学空间中的位置关系类似,这样测试结果更能反映模型在真实应用时的表现。 工作流程 定义部署场景:准备一组代表未来应用场景的分子(如已上市药物、临床候选药等),计算它们到训练集的距离分布(这是目标分布) 评估各种分割方法:对每种候选分割方法计算test-to-train分布 选择最佳方法:使用Jenssen-Shannon距离评分,选择与目标分布最相似的分割方法 代码实现 import splito from sklearn.model_selection import ShuffleSplit # 定义候选分割器 splitters = { "Random": ShuffleSplit(), "Scaffold": splito.ScaffoldSplit(dataset.mol.values), "Perimeter": splito.PerimeterSplit(), "MaxDissimilarity": splito.MaxDissimilaritySplit(), } # 评估并选择最佳分割方法 mood = splito.MOODSplitter(splitters) ranking = mood.fit(X=dataset_feat, X_deployment=deployment_feat) 输出示例: split representativeness best rank 0 Random 0.375938 False 4.0 1 Scaffold 0.492793 False 3.0 2 Perimeter 0.526232 False 2.0 3 MaxDissimilarity 0.552740 True 1.0 在这个例子中,对于给定的部署场景,MaxDissimilarity是最具代表性的分割方法,能够最好地模拟部署时的数据分布特征。 Q&A Q1: 什么时候应该使用骨架分割而不是随机分割? A1: 当您的数据集中包含多个不同的骨架系列(骨架多样性高)时,骨架分割特别有用。它确保模型在从未见过的骨架上进行测试,这对于评估模型泛化到新化学结构的能力至关重要。典型场景是先导化合物优化阶段,此时有多个不同骨架的先进分子系列需要优化。如果数据集中只有一个或少数几个骨架,骨架分割就没有意义了。 Q2: PerimeterSplit和MaxDissimilaritySplit有什么区别? A2: PerimeterSplit选择分布边缘的分子,MaxDissimilaritySplit最大化训练集和测试集的总体不相似性。两者算法实现不同,但都旨在提高模型泛化能力。 Q3: SIMPDSplitter的计算成本很高,值得使用吗? A3: SIMPD确实需要较多计算资源,但在先导化合物优化阶段非常有价值,能够模拟真实项目中分子特征的演变,提供更现实的泛化能力估计。 Q4: 如何选择适合我项目的分割方法? A4: 考虑数据集特征(骨架多样性)、项目阶段(早期发现vs先导化合物优化)、预期目标(新骨架vs微小修饰)和计算资源。 Q5: 分割比例通常设置为多少合适? A5: 常用的分割比例是80/20(训练集/测试集)或70/30。但具体比例应考虑数据集大小、项目需求和分割方法的特性。 Q6: Lo Splitter与其他分割方法的主要区别是什么? A6: Lo Splitter独特之处在于它创建的测试集由相似分子簇组成,专门评估模型对微小结构修饰的敏感度。这与其他方法(如骨架分割)测试新骨架的泛化能力完全不同。Lo Splitter特别适合先导化合物优化阶段和分子生成任务。 Q7: 什么时候应该使用MOOD Protocol? A7: 当不确定使用哪种分割方法、且有明确的未来应用场景(如知道模型最终要预测什么类型的分子)时使用MOOD。例如,如果你知道模型将用于预测临床候选药物,就可以用MOOD来选择最合适的分割方法。 关键结论与批判性总结 splito库为生命科学领域的数据分割提供了强大而灵活的工具。通过系统性地理解各种分割方法的原理和应用场景,研究人员可以选择最适合其特定需求的策略。 通过合理选择和应用splito中的数据分割方法,研究人员可以更准确地评估机器学习模型的泛化能力,从而加速药物发现进程并提高研究质量。
Machine Learning & AI
· 2025-11-14
分子性质预测:机器学习回归算法详解(二)树模型与梯度提升
分子性质预测:机器学习回归算法详解(二)树模型与梯度提升 系列导航: 第一篇:基础回归模型 - 线性模型、支持向量机、近邻方法 第二篇:树模型与梯度提升(本文)- 决策树、随机森林、XGBoost/LightGBM等 第三篇:高级模型与应用指南 - 神经网络、概率模型、VAE、模型选择指南 导读 树模型和梯度提升是实战中最常用的回归方法,在Kaggle竞赛和工业界都有着广泛应用。本篇将详细介绍: 决策树与随机森林:从单棵树到集成学习 梯度提升家族:GradientBoosting、XGBoost、LightGBM、CatBoost等 模型对比:帮助你选择最合适的树模型 这些模型在分子性质预测、药物筛选等任务中表现优异,通常能达到最佳性能。 1. 决策树与随机森林 1.1 DecisionTreeRegressor(决策树回归器) 核心思想:通过一系列if-else规则递归划分特征空间。 sklearn实现:from sklearn.tree import DecisionTreeRegressor 分裂准则(回归): \(\text{MSE} = \frac{1}{N}\sum_{i=1}^{N}(y_i - \bar{y})^2\) 每次选择使得子节点MSE之和最小的特征和阈值进行分裂。 特点: ✅ 极高可解释性:决策路径清晰可视化 ✅ 自动特征交互:无需手动构造交叉项 ✅ 处理缺失值:部分实现支持 ❌ 容易过拟合:需要剪枝或限制深度 ⚙️ 关键参数: max_depth:树的最大深度(防止过拟合) min_samples_split:分裂节点所需最小样本数 min_samples_leaf:叶子节点最小样本数 📊 推荐场景:需要解释性的分子性质预测 1.2 RandomForestRegressor(随机森林回归器) 核心思想:训练多棵决策树,通过Bagging + 特征随机采样降低方差。 sklearn实现:from sklearn.ensemble import RandomForestRegressor 算法流程: Bootstrap采样:从训练集中有放回抽取 $N$ 个样本 特征随机:每次分裂只考虑随机选择的 $\sqrt{p}$ 个特征 独立训练每棵树 预测时取所有树的平均值 特点: ✅ 强大泛化能力:集成学习减少过拟合 ✅ 特征重要性:可自动评估特征贡献度 ✅ 鲁棒性强:对噪声和异常值不敏感 ✅ 并行训练:各棵树独立,GPU加速友好 ⚙️ 关键参数: n_estimators:树的数量(通常100-500) max_features:分裂时考虑的特征数(默认 $\sqrt{p}$) max_depth:树的最大深度 📊 推荐场景:通用首选,平衡性能与速度的分子性质预测 1.3 ExtraTreesRegressor(极端随机树回归器) 与随机森林的区别: 不使用Bootstrap采样,使用全部训练数据 分裂阈值完全随机选择(而非最优阈值) sklearn实现:from sklearn.ensemble import ExtraTreesRegressor 特点: ✅ 训练更快:省去阈值搜索步骤 ✅ 更低方差:更强的随机性 📊 推荐场景:大规模分子数据集,追求训练速度 1.4 决策树与随机森林家族综合对比 模型 sklearn实现 核心优势 局限性 计算复杂度 训练速度 推荐场景 DecisionTreeRegressor DecisionTreeRegressor 极高可解释性,自动特征交互 容易过拟合 $O(n \log n)$ 快 需要解释性的回归任务 RandomForestRegressor RandomForestRegressor 强大泛化,特征重要性,鲁棒 内存占用大 $O(M \cdot n \log n)$ 中 通用首选回归模型 ExtraTreesRegressor ExtraTreesRegressor 训练快,方差低 随机性大 $O(M \cdot n \log n)$ 快 大规模数据,追求训练速度 对比要点: 训练速度:ExtraTrees > RandomForest > DecisionTree 预测速度:DecisionTree > RandomForest ≈ ExtraTrees 内存占用:DecisionTree < ExtraTrees < RandomForest 过拟合风险:DecisionTree > RandomForest ≈ ExtraTrees 2. 梯度提升家族 2.1 核心思想 梯度提升(Gradient Boosting)通过串行训练多个弱学习器,每个新模型专注于拟合前一个模型的残差(或梯度)。 2.2 GradientBoostingRegressor(标准梯度提升回归器) sklearn实现:from sklearn.ensemble import GradientBoostingRegressor 算法流程: 初始化 $F_0(\mathbf{x}) = \bar{y}$ 对 $m = 1, 2, \ldots, M$: 计算负梯度(伪残差):$r_{im} = -\frac{\partial L(y_i, F(\mathbf{x}_i))}{\partial F(\mathbf{x}_i)}$ 训练决策树 $h_m$ 拟合 $r_{im}$ 更新模型:$F_m(\mathbf{x}) = F_{m-1}(\mathbf{x}) + \nu \cdot h_m(\mathbf{x})$ 其中 $\nu$ 是学习率。 特点: ✅ 高准确性:通常优于随机森林 ✅ 灵活损失函数:支持多种回归任务 ❌ 训练缓慢:串行训练无法并行 ❌ 易过拟合:需要精细调参 ⚙️ 关键参数: learning_rate:学习率(0.01-0.3) n_estimators:迭代次数 max_depth:树深度(通常3-8) 2.3 XGBoostRegressor(极端梯度提升回归器) 创新点: 二阶泰勒展开:使用一阶和二阶梯度信息 正则化:在目标函数中加入树复杂度惩罚 列采样:借鉴随机森林的特征采样 工程优化:并行化、缓存优化、GPU加速 sklearn实现:from xgboost import XGBRegressor 目标函数: \(\mathcal{L} = \sum_{i=1}^{n}l(y_i, \hat{y}_i) + \sum_{k=1}^{K}\Omega(f_k)\) 其中 $\Omega(f_k) = \gamma T + \frac{1}{2}\lambda|\mathbf{w}|^2$($T$ 为叶子节点数,$\mathbf{w}$ 为叶子权重)。 特点: ✅ Kaggle神器:竞赛中最常用模型之一 ✅ 处理缺失值:自动学习缺失值的最优方向 ✅ 速度快:高效工程实现 ⚙️ 独特参数: subsample:行采样比例 colsample_bytree:列采样比例 reg_alpha, reg_lambda:L1/L2正则化 📊 推荐场景:追求极致性能的分子性质预测 2.4 LGBMRegressor(轻量级梯度提升回归器) 创新点: GOSS(Gradient-based One-Side Sampling):保留大梯度样本,随机采样小梯度样本 EFB(Exclusive Feature Bundling):互斥特征打包,减少特征维度 Leaf-wise生长:按叶子节点最大增益生长(而非level-wise) sklearn实现:from lightgbm import LGBMRegressor 特点: ✅ 训练极快:大数据集上比XGBoost快5-10倍 ✅ 内存占用低:特征打包技术 ✅ 高准确性:与XGBoost相当或更好 ⚠️ 易过拟合:Leaf-wise策略在小数据集上需要谨慎 ⚙️ 独特参数: num_leaves:最大叶子节点数(核心参数) min_data_in_leaf:叶子最小样本数 📊 推荐场景:大规模分子数据库(>10万样本) 2.5 CatBoostRegressor(类别提升回归器) 创新点: Ordered Boosting:解决梯度估计偏差问题 原生支持类别特征:自动处理类别编码 对称树:减少预测时间 sklearn实现:from catboost import CatBoostRegressor 特点: ✅ 开箱即用:默认参数表现优异 ✅ 鲁棒性强:对参数不敏感 ✅ 处理类别特征:SMILES子结构等类别信息 ❌ 训练稍慢:相比LightGBM 📊 推荐场景:混合特征(连续+类别)的分子数据 2.6 HistGradientBoostingRegressor(直方图梯度提升回归器) sklearn实现:from sklearn.ensemble import HistGradientBoostingRegressor 特点: ✅ 原生支持缺失值:无需预处理 ✅ 速度快:基于直方图的分裂 ✅ 无需安装额外库:scikit-learn自带 📊 推荐场景:快速原型开发,不需要额外依赖的回归任务 2.7 AdaBoostRegressor(自适应提升回归器) 核心思想:每轮增加错误样本的权重,强迫后续模型关注难分样本。 sklearn实现:from sklearn.ensemble import AdaBoostRegressor 特点: ✅ 简单有效:历史悠久,理论成熟 ❌ 对噪声敏感:异常值会被过度关注 📊 推荐场景:数据质量高的回归问题 2.8 梯度提升家族综合对比 模型 sklearn实现 核心优势 训练方式 正则化 特征采样 适用数据规模 计算效率 推荐场景 GradientBoostingRegressor GradientBoostingRegressor 理论成熟,灵活损失函数 串行 无 ❌ 小-中数据集 低 需要精细调参的回归 XGBRegressor XGBRegressor 竞赛级性能,工程优化好 串行 ✓ ✓ 中-大数据集 高 追求极致性能的回归 LGBMRegressor LGBMRegressor 训练极快,内存效率高 串行 ✓ ✓ 大-超大数据集 极高 大数据集回归首选 CatBoostRegressor CatBoostRegressor 开箱即用,处理类别特征 串行 ✓ ❌ 小-中数据集 中 混合特征的回归 HistGradientBoostingRegressor HistGradientBoostingRegressor 原生支持缺失值,sklearn自带 串行 ✓ ✓ 中-大数据集 高 快速原型开发 AdaBoostRegressor AdaBoostRegressor 简单有效,历史悠久 串行 ❌ ❌ 小数据集 低 数据质量高的回归 对比要点: 训练速度:LGBM > HistGB > XGB > CatBoost > GB > AdaBoost 内存效率:LGBM > HistGB > XGB > GB ≈ CatBoost > AdaBoost 大数据适应性:LGBM > XGB > HistGB > CatBoost > GB > AdaBoost 小数据表现:AdaBoost > CatBoost > GB > XGB ≈ HistGB > LGBM 类别特征处理:CatBoost > XGB ≈ LGBM > HistGB > GB > AdaBoost 3. 树模型实战建议 3.1 参数调优策略 随机森林调参顺序: n_estimators:先设置一个足够大的值(如500) max_depth:从5开始逐步增加 min_samples_split 和 min_samples_leaf:防止过拟合 max_features:默认 $\sqrt{p}$ 通常已经很好 梯度提升调参顺序: n_estimators 和 learning_rate:两者成反比,先固定一个 max_depth:通常3-8之间 正则化参数:reg_alpha, reg_lambda(XGBoost/LightGBM) 采样参数:subsample, colsample_bytree 3.2 性能优化技巧 训练速度优化: 使用LightGBM替代XGBoost(大数据集) 减少 n_estimators,增加 learning_rate 限制 max_depth 使用GPU版本(XGBoost/LightGBM) 内存优化: 减少 n_estimators(随机森林) 使用 max_bins 参数(LightGBM) 特征选择,降维 过拟合防止: 增加 min_samples_leaf(随机森林) 减小 learning_rate,增加 n_estimators(梯度提升) 使用正则化参数 Early stopping(梯度提升) 本篇小结 第二篇介绍了实战中最常用的树模型和梯度提升方法: ✅ 决策树与随机森林:从单棵树的高可解释性,到随机森林的强大泛化能力,再到极端随机树的训练速度优势 ✅ 梯度提升家族:从经典的GradientBoosting,到竞赛神器XGBoost,再到大数据杀手LightGBM,以及开箱即用的CatBoost 这些模型的共同特点: 准确性高:通常能达到最佳性能 特征工程简单:自动处理特征交互 鲁棒性强:对异常值和噪声不敏感 实战建议: 快速原型:RandomForest 追求极致性能:XGBoost或LightGBM 大数据集:LightGBM 类别特征多:CatBoost 需要解释性:DecisionTree或RandomForest(feature_importances_) 下一篇将介绍神经网络、概率模型、深度生成模型(VAE),以及完整的模型选择指南,帮助你在实际项目中做出最佳选择。 参考资料 Scikit-learn Documentation: https://scikit-learn.org/ XGBoost Documentation: https://xgboost.readthedocs.io/ LightGBM Documentation: https://lightgbm.readthedocs.io/ CatBoost Documentation: https://catboost.ai/docs/ Breiman (2001). “Random Forests” Chen & Guestrin (2016). “XGBoost: A Scalable Tree Boosting System” Ke et al. (2017). “LightGBM: A Highly Efficient Gradient Boosting Decision Tree”
Machine Learning & AI
· 2025-11-10
分子性质预测:机器学习回归算法详解(一)基础回归模型
分子性质预测:机器学习回归算法详解(一)基础回归模型 系列导航: 第一篇:基础回归模型(本文)- 线性模型、支持向量机、近邻方法 第二篇:树模型与梯度提升 - 决策树、随机森林、XGBoost/LightGBM等 第三篇:高级模型与应用指南 - 神经网络、概率模型、VAE、模型选择指南 导读 在分子性质预测、药物筛选、材料设计等回归任务中,选对机器学习模型至关重要。本系列文章将介绍30余种经典和前沿的回归算法,剖析每个模型的原理、公式和适用场景。 第一篇聚焦基础回归模型,这些模型是理解现代机器学习的基石: 线性模型家族:从简单的线性回归到鲁棒回归、广义线性模型 支持向量回归:处理非线性关系的经典方法 近邻方法:基于相似性的简单有效算法 所有模型均基于scikit-learn实现,可直接用于实践。 1. 线性模型家族 1.1 核心思想 线性模型假设输入特征与目标值之间存在线性关系,通过学习特征权重来进行预测。这是最基础也是最可解释的模型类型。 1.2 基础线性模型 LinearRegression(线性回归器) 原理:最小化预测值与真实值之间的平方误差。 sklearn实现:from sklearn.linear_model import LinearRegression 数学公式: \(\hat{y} = w_0 + w_1x_1 + w_2x_2 + \cdots + w_nx_n = \mathbf{w}^T\mathbf{x}\) \[\min_{\mathbf{w}} \sum_{i=1}^{m} (y_i - \mathbf{w}^T\mathbf{x}_i)^2\] 特点: ✅ 快速训练:解析解,无需迭代 ✅ 高度可解释:每个特征的权重清晰可见 ❌ 容易过拟合:高维数据时权重不稳定 📊 推荐场景:分子性质预测的baseline模型 Ridge(岭回归器) 原理:在线性回归基础上加入L2正则化,防止权重过大。 sklearn实现:from sklearn.linear_model import Ridge 数学公式: \(\min_{\mathbf{w}} \sum_{i=1}^{m} (y_i - \mathbf{w}^T\mathbf{x}_i)^2 + \alpha \|\mathbf{w}\|_2^2\) 特点: ✅ 缓解共线性:相关特征的权重更稳定 ✅ 防止过拟合:正则化参数 $\alpha$ 控制模型复杂度 📊 推荐场景:特征数量接近或超过样本数量的高维分子数据 Lasso(套索回归器) 原理:使用L1正则化,可将部分特征权重压缩为0,实现特征选择。 sklearn实现:from sklearn.linear_model import Lasso 数学公式: \(\min_{\mathbf{w}} \sum_{i=1}^{m} (y_i - \mathbf{w}^T\mathbf{x}_i)^2 + \alpha \|\mathbf{w}\|_1\) 特点: ✅ 自动特征选择:不重要的特征权重为0 ✅ 稀疏解:结果更简洁易懂 📊 推荐场景:需要识别关键分子描述符时 ElasticNet(弹性网络回归器) 原理:结合L1和L2正则化,平衡两者优势。 sklearn实现:from sklearn.linear_model import ElasticNet 数学公式: \(\min_{\mathbf{w}} \sum_{i=1}^{m} (y_i - \mathbf{w}^T\mathbf{x}_i)^2 + \alpha \rho \|\mathbf{w}\|_1 + \frac{\alpha(1-\rho)}{2} \|\mathbf{w}\|_2^2\) 其中 $\rho$ 控制L1和L2的比例。 特点: ✅ 综合优势:既能特征选择又能处理共线性 ✅ 灵活调节:通过 $\rho$ 调整L1/L2权重 📊 推荐场景:复杂分子数据集的通用首选回归器 SGDRegressor(随机梯度下降回归器) 原理:通过逐样本更新权重实现在线学习,适合超大规模数据。 sklearn实现:from sklearn.linear_model import SGDRegressor 特点: ✅ 内存高效:无需一次加载所有数据 ✅ 支持在线学习:数据流式更新模型 ⚡ 快速收敛:大数据集训练速度快 📊 推荐场景:大规模分子数据库的增量学习 1.3 鲁棒回归家族 当数据中存在异常值或重尾噪声时,标准最小二乘法会失效。鲁棒回归模型通过特殊的损失函数降低异常值的影响。 HuberRegressor(胡伯回归器) 损失函数: \(L_\delta(r) = \begin{cases} \frac{1}{2}r^2 & |r| \leq \delta \\ \delta(|r| - \frac{1}{2}\delta) & |r| > \delta \end{cases}\) 小误差用平方损失(L2),大误差用绝对值损失(L1),平衡效率和鲁棒性。 sklearn实现:from sklearn.linear_model import HuberRegressor 特点: ✅ 对中等异常值鲁棒:适度降低离群点影响 ⚙️ 关键参数:epsilon(平方/线性损失转换点,默认1.35) 📊 推荐场景:包含中等异常值的分子性质回归 TheilSenRegressor(西尔森回归器) 核心思想:基于样本对斜率的中位数估计,对异常值具有极强鲁棒性。 sklearn实现:from sklearn.linear_model import TheilSenRegressor 特点: ✅ 极强鲁棒性:可容忍29.3%的异常值 ❌ 仅适用低维:特征数 <20 ❌ 计算复杂度高:$O(n^2)$ 📊 推荐场景:实验数据质量差,离群点多的分子性质回归 RANSACRegressor(随机采样一致性回归器) 核心思想:随机采样一致性(Random Sample Consensus)算法,通过迭代随机采样找到最优内点集。 sklearn实现:from sklearn.linear_model import RANSACRegressor 算法流程: 随机采样最小样本集,拟合模型 计算所有样本的残差 将残差小于阈值的样本标记为内点 重复1-3,选择内点最多的模型 使用所有内点重新拟合最终模型 特点: ✅ 极强鲁棒性:可处理>50%异常值 ❌ 不确定性高:随机算法,结果有波动 ⚙️ 关键参数: residual_threshold:内点阈值 max_trials:迭代次数 📊 推荐场景:严重污染数据,如高通量分子筛选的批次效应 QuantileRegressor(分位数回归器) 核心思想:不预测均值,而是预测条件分位数。 sklearn实现:from sklearn.ensemble import GradientBoostingRegressor(设置loss=’quantile’) 损失函数($\tau$-分位数): \(L_\tau(r) = \begin{cases} \tau r & r \geq 0 \\ (\tau - 1)r & r < 0 \end{cases}\) 特点: ✅ 对异常值不敏感:中位数回归($\tau=0.5$)特别鲁棒 ✅ 不确定性量化:通过多个分位数(如0.1, 0.5, 0.9)给出预测区间 ⚙️ 关键参数:quantile(目标分位数,0-1之间) 📊 推荐场景:关注分布尾部,如毒性阈值预测 1.4 广义线性模型家族 当响应变量不服从正态分布时,广义线性模型(GLM)通过链接函数将线性预测器映射到合适的分布空间。 PoissonRegressor(泊松回归器) 适用场景:计数数据(非负整数)。 sklearn实现:from sklearn.linear_model import PoissonRegressor 模型: \(\log(\mu) = \mathbf{w}^T\mathbf{x}\) \(y \sim \text{Poisson}(\mu)\) 特点: ✅ 适合计数型目标:如分子中特定基团数量 📊 推荐场景:预测计数型分子属性 GammaRegressor(伽马回归器) 适用场景:正偏态连续数据(如溶解度、半衰期)。 sklearn实现:from sklearn.linear_model import GammaRegressor 模型: \(\log(\mu) = \mathbf{w}^T\mathbf{x}\) \(y \sim \text{Gamma}(\mu, \alpha)\) 特点: ✅ 适合右偏数据:常见于物理化学性质 📊 推荐场景:药代动力学参数(清除率、分布体积等) TweedieRegressor(特威迪回归器) 适用场景:混合分布(包含零值和正连续值)。 sklearn实现:from sklearn.linear_model import TweedieRegressor 特点: ✅ 灵活分布:通过 power 参数调整分布形态 power=0:正态分布 power=1:泊松分布 power=2:伽马分布 1<power<2:复合泊松-伽马分布 📊 推荐场景:高通量分子筛选数据 1.5 概率线性模型 BayesianRidge(贝叶斯岭回归器) 核心思想:将权重视为随机变量,使用概率分布表示不确定性。 sklearn实现:from sklearn.linear_model import BayesianRidge 贝叶斯推断: \(p(\mathbf{w}|\mathcal{D}) \propto p(\mathcal{D}|\mathbf{w})p(\mathbf{w})\) 特点: ✅ 自动确定正则化强度:无需手动调参 ✅ 提供不确定性估计:预测值带置信区间 📊 推荐场景:小样本、需要置信度的药物早期回归研究 ARDRegressor(自动相关性判定回归器) 核心思想:为每个特征赋予独立的精度参数,自动判定特征相关性。 sklearn实现:from sklearn.linear_model import ARDRegression 特点: ✅ 极致特征选择:不相关特征的权重精确为0 ✅ 贝叶斯框架:自动正则化 📊 推荐场景:超高维稀疏分子描述符数据 1.6 线性模型家族综合对比 模型 sklearn实现 核心优势 局限性 计算复杂度 推荐场景 LinearRegression LinearRegression 简单快速,解析解 对异常值敏感 $O(n^3)$ 基准回归模型 Ridge Ridge 缓解共线性,防止过拟合 需要调参$\alpha$ $O(n^3)$ 高维数据 Lasso Lasso 自动特征选择,稀疏解 特征间相关性高时表现差 $O(n^3)$ 特征选择 ElasticNet ElasticNet 兼顾L1/L2优势 需要调参$\alpha, \rho$ $O(n^3)$ 复杂数据通用 SGDRegressor SGDRegressor 内存高效,支持在线学习 需要调参学习率 $O(n)$ 大数据流 BayesianRidge BayesianRidge 自动正则化,提供不确定性 计算较慢 $O(n^3)$ 小样本 ARDRegressor ARDRegressor 极致特征选择 仅适用稀疏数据 $O(n^3)$ 超高维稀疏 HuberRegressor HuberRegressor 对中等异常值鲁棒 需要调参$\epsilon$ $O(n^3)$ 含离群点 TheilSenRegressor TheilSenRegressor 极强鲁棒性 仅适用低维,计算慢 $O(n^2)$ 严重污染数据 RANSACRegressor RANSACRegressor 可处理>50%异常值 结果不稳定,随机性 $O(k \cdot n^2)$ 严重污染数据 QuantileRegressor QuantileRegressor 预测分位数,不敏感 计算慢,需调参$\tau$ $O(n \cdot \log n)$ 需要预测区间 PoissonRegressor PoissonRegressor 适合计数数据 仅适用非负整数 $O(n^3)$ 分子计数属性 GammaRegressor GammaRegressor 适合正偏态数据 仅适用正连续值 $O(n^3)$ 物理化学性质 TweedieRegressor TweedieRegressor 灵活分布形态 需要调参power $O(n^3)$ 高通量筛选 2. 支持向量机 2.1 核心思想 支持向量回归(SVR)通过最大间隔回归来拟合数据,通过核函数可处理非线性回归问题。 2.2 SVR(支持向量回归器) 原理:容忍预测值在真实值 $\pm \epsilon$ 范围内的误差,只惩罚超出此范围的样本。 sklearn实现:from sklearn.svm import SVR 数学公式: \(\min_{\mathbf{w}} \frac{1}{2}\|\mathbf{w}\|^2 + C\sum_{i=1}^{m}\max(0, |y_i - \mathbf{w}^T\mathbf{x}_i| - \epsilon)\) 核函数技巧: Linear Kernel:$K(\mathbf{x}_i, \mathbf{x}_j) = \mathbf{x}_i^T\mathbf{x}_j$ RBF Kernel:$K(\mathbf{x}_i, \mathbf{x}_j) = \exp(-\gamma|\mathbf{x}_i - \mathbf{x}_j|^2)$ Polynomial Kernel:$K(\mathbf{x}_i, \mathbf{x}_j) = (\gamma\mathbf{x}_i^T\mathbf{x}_j + r)^d$ 特点: ✅ 处理非线性:RBF核可拟合复杂回归关系 ✅ 鲁棒性强:对异常值不敏感($\epsilon$-insensitive) ❌ 训练缓慢:大数据集(>10^4样本)计算成本高 ⚙️ 关键参数: C:正则化强度(越大越拟合训练数据) gamma:RBF核的宽度(越大越关注近邻样本) epsilon:容忍误差范围 📊 推荐场景:复杂非线性分子性质预测 3. 近邻方法 3.1 K-Nearest Neighbors(K近邻回归器) 核心思想:预测值由距离最近的 $k$ 个样本的平均值决定。 sklearn实现:from sklearn.neighbors import KNeighborsRegressor 数学公式(回归): \(\hat{y} = \frac{1}{k}\sum_{i \in \mathcal{N}_k(\mathbf{x})} y_i\) 其中 $\mathcal{N}_k(\mathbf{x})$ 是距离 $\mathbf{x}$ 最近的 $k$ 个样本集合。 距离度量: Euclidean Distance:$d(\mathbf{x}_i, \mathbf{x}_j) = |\mathbf{x}_i - \mathbf{x}_j|_2$ Manhattan Distance:$d(\mathbf{x}_i, \mathbf{x}_j) = |\mathbf{x}_i - \mathbf{x}_j|_1$ 特点: ✅ 零训练时间:惰性学习,无需训练过程 ✅ 天然处理非线性:基于局部信息 ❌ 预测缓慢:需要计算与所有训练样本的距离 ❌ 对特征缩放敏感:建议先标准化 ⚙️ 关键参数: n_neighbors:近邻数量(通常5-15) weights:uniform(等权)或 distance(距离加权) 📊 推荐场景:小数据集快速baseline,分子相似性搜索 本篇小结 第一篇介绍了机器学习回归的基础模型: ✅ 线性模型家族:从基础的线性回归、岭回归、Lasso,到鲁棒回归(Huber、TheilSen、RANSAC)、广义线性模型(Poisson、Gamma、Tweedie)和概率模型(BayesianRidge、ARD),形成了完整的线性回归工具箱 ✅ 支持向量回归:通过核函数处理非线性关系,是小样本高维数据的经典选择 ✅ 近邻方法:基于相似性的简单有效算法,零训练时间,适合快速原型 这些基础模型具有以下共同优势: 训练速度快:适合快速建立baseline 高度可解释:特别是线性模型,权重清晰可见 理论成熟:经过数十年验证,稳定可靠 下一篇将介绍实战中最常用的树模型与梯度提升方法,包括随机森林、XGBoost、LightGBM等竞赛级模型。
Machine Learning & AI
· 2025-11-10
“MolAgent:智能体时代下的自动化分子性质预测系统”
MolAgent:智能体时代下的自动化分子性质预测系统 本文信息 标题: MolAgent:Biomolecular Property Estimation in the Agentic Era 作者: Jose Carlos Gómez-Tamayo, Joris Tavernier, Roy Aerts, Natalia Dyubankova, Dries Van Rompaey, 等 发表时间: 2025年10月16日 单位: Johnson & Johnson(比利时、新泽西州)、Open Analytics、比利时安特卫普大学、美国 引用格式: Gómez-Tamayo, J. C., Tavernier, J., Aerts, R., Dyubankova, N., Van Rompaey, D., Menon, S., Steijaert, M., Wegner, J. K., Ceulemans, H., Tresadern, G., De Winter, H., & Ahmad, M. (2025). MolAgent: Biomolecular property estimation in the agentic era. Journal of Chemical Information and Modeling, 65(10), 10808–10818. https://doi.org/10.1021/acs.jcim.5c01938 参考资源: GitHub仓库:https://github.com/openanalytics/MolAgent Therapeutics Data Commons:https://tdcommons.ai/ Model Context Protocol文档:https://docs.anthropic.com/en/docs/agents-and-tools/mcp FLAME框架(对比参考):https://github.com/Open-Source-Systems-Lab/flame_public 摘要 Agentic AI系统的出现正在推动科学与技术领域的深刻变革。大语言模型(LLM)、推理能力与外部工具集成的进步,催生了一个全新时代——AI智能体能够自主执行传统上由人类完成的计算任务。计算机辅助药物设计(CADD)作为一个包含复杂、相互依赖任务的多面过程,从这些进步中获益最大。然而,关键挑战在于构建与人类专家开发的模型相当的分子性质估计模型。MolAgent正是为了解决这一瓶颈而设计的——一个系统无关的agentic AI框架,专注于端到端自动化分子性质建模,支持2D/3D结构、传统描述符与深度学习特征的融合,并完全遵循Model Context Protocol(MCP)以实现与多样化agentic基础设施的无缝互操作。 核心结论 Agentic AI转变:从被动的单步完成模型演进到具备自主多步规划、环境适应性与多工具协调能力的智能体架构 MCP标准化集成:MolAgent完全遵循Anthropic的Model Context Protocol,使其能够灵活接入各类agentic AI框架,包括Smolagents和其他LLM系统 自动化模型构建能力:框架实现完全自动化的特征工程、模型选择、超参数优化与验证,无需人工专家干预 多模态特征融合:整合RDKit描述符、Morgan指纹、深度学习嵌入(BottleneckTransformer)与基于3D结构的特征(AffinityGraph、ProLIF),在ADMET基准上达到与人类微调模型相当的性能 实证验证:在TDC基准的23项ADMET任务上,MolAgent在“廉价”计算预算下展现出竞争力表现;在脂溶性(logP)预测中R²达0.89,在binding affinity建模中R²达0.72 背景 大背景:Agentic AI的蓬勃发展 2024-2025年标志着人工智能的范式转变。LLM不再是被动的查询-响应工具,而是演变为具备动态推理、持久内存与函数调用能力的智能体。Gartner报告预测,到本十年末,数字智能体将独立管理高达80%的常规服务任务。 这一转变对科学计算意义重大。最近的工作(van Weesep等,2025)展示了模块化LLM智能体系统如何协调化学信息学工具、进行文献驱动推理,并动态选择分子模拟、性质预测与假设生成模块——所有这些无需人工微观管理。 药物发现中的关键瓶颈 早期药物研发面临复杂、资源密集的挑战: 多学科整合困难:传统管道依赖分区化专业知识(结构化学、药物化学、ADMET预测) 数据碎片化:实验数据、文献、公开数据库之间缺乏无缝协调 人工主导的高成本:模型开发、特征工程、超参数优化严重依赖专家人工操作,周期长、成本高 可复现性困难:QSAR模型性能波动大,往往因特征选择、模型架构选择的武断性而难以再现 当前的技术瓶颈 尽管LLM在化学领域展现出潜力(ChemLLM在分子命名、分子生成等任务上超越GPT-3.5/GPT-4),agentic系统在分子性质建模中仍缺乏高保真工具: 现有QSAR框架(FLAME、AutoML解决方案)往往面向通用ML应用,不能充分利用分子数据的特殊结构 模型质量与自动化程度的权衡:自动化程度越高,通常意味着性能下降 MCP标准缺失:现有工具与agentic基础设施的互操作性不足,难以在复杂multi-agent工作流中无缝使用 MolAgent正是为了弥合这一鸿沟而设计的。 关键科学问题 1. 能否实现“专家级”的自动化QSAR建模? 问题核心:自动化系统是否能在无人工干预的前提下,构建与人类专家微调模型相当或更优的性质预测模型? 这不仅涉及算法的先进性,更涉及对分子数据特殊性的深入理解——例如,化学系列内的相似性、活性悬崖等。 2. 如何在多种特征表示间实现高效的融合与选择? 传统QSAR依赖手工选择的描述符集;深度学习方法提供自动学习但缺乏解释性。如何统一这两类信息? 3. 3D结构信息能否显著提升binding affinity预测? Structure-based descriptors(如蛋白质-配体相互作用)在虚拟筛选中被广泛使用,但如何系统地整合到端到端自动模型中? 4. Agentic系统中的模型自主选择机制如何工作? LLM何时、如何决定采用“廉价”vs “昂贵”的计算配置?自主决策的质量如何保证? 创新点 系统级创新:首个完全MCP-ready的分子性质建模框架,设计为agentic AI系统的一流公民 特征工程自动化:集成五类特征生成器(RDKit、Morgan指纹、BottleneckTransformer、AffinityGraph、ProLIF),并实现自适应特征选择,无需专家指导 嵌套交叉验证框架:采用leave-group-out策略,确保模型验证反映真实的新化学序列泛化能力,而非仅在相似化合物上的性能 3D感知的binding affinity建模:利用图神经网络(GRAPHGPS架构)整合原子与残基级别编码、蛋白质-配体相互作用指纹,在ABL1激酶案例中展示显著改进(R²从0.60提升至0.72) 研究内容 核心架构:端到端的agentic工作流 graph TB User["用户询问<br/>(自然语言)"] --> Manager["经理智能体<br/>(任务分解与协调)"] Manager --> DataAgent["数据检索智能体<br/>(TDC/CSV/SDF处理)"] Manager --> ModelAgent["模型训练智能体<br/>(MolAgent核心)"] DataAgent --> DataPrep["数据预处理<br/>(SMILES验证、聚类)"] ModelAgent --> FeatureGen["特征生成<br/>(多模态融合)"] FeatureGen --> Clustering["分子聚类<br/>(Murcko/Butina)"] Clustering --> DataSplit["数据分割<br/>(leave-group-out)"] DataSplit --> ModelSearch["模型搜索<br/>(嵌套交叉验证)"] ModelSearch --> Ensemble["集成与堆叠<br/>(多策略组合)"] Ensemble --> Validation["综合验证<br/>(混合策略)"] Validation --> Output["结果输出<br/>(指标、可视化、JSON)"] Output --> User MolAgent核心组件 1. MCP层(Model Context Protocol集成) MCP是Anthropic定义的标准化智能体-工具通信协议。MolAgent实现Python包装器,使得LLM能够通过简单的JSON RPC调用触发模型训练: LLM → automol_classification_model(data, target, features=“bottleneck", budget=“cheap") 这一设计确保了框架与任意MCP兼容的agentic基础设施的互操作性——无论是Claude API、Anthropic的agents还是第三方系统(如Hugging Face的Smolagents)。 2. 特征生成(Feature Generation) MolAgent支持五大类特征,形成一个渐进式丰富的特征生成管道: 第一层:传统描述符(RDKITGenerator) 物化学性质:分子量、logP、TPSA、HBA/HBD 拓扑描述符:连接性指数(Chi0-Chi4v/n)、Kier形状指数 电子性质:部分电荷、Electrotopological State指数 官能团计数(75+个):醛基频率、酯基频率等 第二层:指纹(ECFPGenerator) Morgan/ECFP指纹(可调半径与位长) MACCS keys(166维) Topological torsion指纹 Atom pair指纹 优势:快速、可解释、基于化学结构的物理意义 第三层:深度学习嵌入(BottleneckTransformer) 加载在ChEMBL上预训练的transformer模型,通过自注意机制学习原子间的上下文关系,从“瓶颈层”提取512维的密集嵌入。 我没查到这个东西? 优势:无需再训练,捕捉全局分子特征,通常性能优于传统描述符 第四、五层:3D结构特征 AffinityGraph:基于GRAPHGPS架构,采用消息传递神经网络与全局自注意,处理: 原子级编码:配体原子特征的图表示 残基级编码:蛋白质残基信息的聚合 相互作用编码:配体原子与蛋白质残基间的Prolif相互作用(氢键、π-stacking、疏水作用等) 位置编码:基于随机游走与指数衰减注意(GradFormer思想) 在PDBbind与BindingNet上预训练,自动捕捉3D识别关键。 ProLIF交互指纹: 氢键(供体/受体)、π-stacking、π-cation、离子相互作用、van der Waals接触 提供药效团层面的解释性,有助于虚拟筛选 3. 数据聚类与分割(Clustering & Data Splitting) 关键洞察:分子数据中的相似性偏差会导致过度乐观的验证结果。MolAgent实现三种聚类策略: 策略 原理 使用场景 Murcko Scaffold 按Bemis-Murcko支架分组 药物化学项目,注重支架多样性 Butina 基于指纹的层次聚类 通用分子池,保留拓扑相似性 K-Means++ 在嵌入空间中聚类 深度学习特征,自适应聚类数 leave-group-out验证:整个聚类作为一个单元从训练集中移除,评估模型对新化学序列的真实泛化能力。 4. 嵌套交叉验证(Nested Cross-Validation) 外层循环(k折): 将数据分为k个fold,每个fold依次作为验证集 最终性能报告为k个fold的未偏差估计 内层循环(k折,在每个外层训练fold内): 进行超参数搜索与模型选择 防止选择偏差(避免在验证集上过度优化) 三种超参数搜索策略: GridSearch:穷举预定义的参数网格,适合小参数空间 RandomizedSearch:随机采样,计算效率高,100次迭代 HyperoptSearch(Bayesian优化):使用Tree-structured Parzen Estimator (TPE),高效定位高维参数空间中的有前景区域 5. 模型集成(Model Stacking & Ensembling) MolAgent实现六层级的集成策略,从简到复: Inner Methods:基础模型输出简单平均(回归)或投票(分类) Inner Stacking:多个stacking模型(每个外fold一个),输出再次聚合 Single Stack:单个meta-model在整个外折优化 Top Method:独立训练基础模型,单个meta-model学习组合权重 Top Stacking:基础模型在内fold训练,meta-model使用交叉验证输出 Stacking on Stacking(仅分类):层级堆叠,形成meta-meta-model 示例:假设基础模型为[SVR, LightGBM, LogisticRegression],meta-model为LightGBM,则最终预测为: \(\hat{y} = \text{LightGBM}([SVR(\mathbf{X}), LightGBM(\mathbf{X}), LogReg(\mathbf{X})])\) 6. 验证程序(Validation Procedures) 分层验证:确保训练集与验证集中活性类别的比例一致(对不平衡数据集至关重要) 混合验证:同时应用: 活性悬崖识别(Activity cliff) 基于group的分割 分层采样 创造多维度的挑战,更接近真实部署情景。 计算预算与模型配置 MolAgent通过三个预设计算预算级别来适应不同场景,每个级别对应不同的特征选择、超参优化策略和模型复杂度: 回归任务(Regression) 配置项 Cheap(快速执行) Moderate(平衡速度与精度) Expensive(最高精度) 特征层级 RDKit + Morgan(第1-2层) RDKit + Morgan +BottleneckTransformer(第1-3层) 全部五层特征(含AffinityGraph、ProLIF) 最终模型 单一模型或简单集成 单一模型或混合器 Stacking回归器 候选/基础模型 候选:SVR、Lasso、Kernel Ridge基础:SVR、Lasso、PLS、Kernel Ridge 候选:SVR、Lasso、KernelRidge、LightGBM基础:SVR、Lasso、PLS、KernelRidge、SGD、Decision Trees、LightGBM 基础:SVR、Lasso、PLS、KernelRidge、SGD、Decision Trees、4个LightGBM(不同超参)Meta-learner:SVR、Lasso、KernelRidge或LightGBM 超参优化 GridSearch(穷举) RandomizedSearch(100次迭代) Bayesian优化(HyperOpt,100次) 集成策略 简单平均 (averaging) 加权集成 (weighted) Stacking-on-stacking 分类任务(Classification) 配置项 Cheap(快速执行) Moderate(平衡速度与精度) Expensive(最高精度) 特征层级 RDKit + Morgan RDKit + Morgan +BottleneckTransformer 全部五层特征 最终模型 单一模型或简单集成 单一模型或混合器 Stacking分类器 候选/基础模型 候选:Logistic Regression基础:LogReg、SVM、k-NN 候选:LogReg或LightGBM基础:LogReg、SVM、k-NN、SGD、LightGBM 基础:LogReg、SVM、k-NN、SGD、Decision Trees、4个LightGBMMeta-learner:LogReg、Lasso、KernelRidge或LightGBM 超参优化 GridSearch RandomizedSearch(100次) Bayesian优化(HyperOpt,100次) 集成策略 投票分类器 (voting) 加权集成 (weighted) Stacking-on-stacking 术语解释: 单一模型(Single Model):从候选模型中选择性能最优的一个模型作为最终预测器 简单集成(Simple Blender):使用基础模型的简单组合策略 回归任务:对所有基础模型的预测值进行简单平均(averaging) 分类任务:使用投票分类器(voting classifier),按多数投票决定最终类别 混合器(Blender):更复杂的集成策略,对基础模型的输出进行加权组合(weighted ensemble),权重通过交叉验证优化 Stacking:两层集成架构 第一层:多个基础模型(base estimators)独立训练并产生预测 第二层:元学习器(meta-learner)学习如何最优地组合第一层的预测结果 Stacking-on-stacking:在stacking基础上进一步叠加,形成更深的集成层次 关键设计:三个预算级别通过特征深度(从传统描述符到3D结构特征)、超参优化策略(从穷举到贝叶斯)和集成复杂度(从简单平均到stacking-on-stacking)形成递进式的性能-成本权衡。 相对与绝对建模(Relative vs Absolute Modeling) 对于数据稀缺的情景,MolAgent支持成对delta建模: 不直接预测绝对性质,而是学习两个化合物间的相对差异: \(\Delta_{\text{delta}} = f(X_i) - f(X_j)\) 优势: 有效数据点数量翻倍(N个化合物可产生$N(N-1)/2$个成对比较) 尤其适合lead优化场景(往往关注相对改进,而非绝对值) 研究结果与验证 结果1:ADMET基准性能(Table 1) 在Therapeutics Data Commons的23项ADMET任务上,MolAgent采用cheap计算预算(GridSearch超参数优化)评估: 任务 MolAgent 最佳已发布 排名 指标 Caco2_Wang 0.303±0.002 0.276±0.005 6/排行榜 MAE Lipophilicity_astrazeneca 0.309±0.001 0.467±0.006 1/排行榜 MAE Solubility_aqsoldb 0.889±0.001 0.761±0.024 8/排行榜 MAE herg 0.624±0.02 0.880±0.002 17/排行榜 AUROC ames 0.793±0.005 0.871±0.002 13/排行榜 AUROC 关键观察: 脂溶性(logP)预测中排名第一,且仅用单次自动运行(无多次参数调整) 在18/23任务中进入排行榜前20% 计算成本远低于人类微调(“廉价”预算 vs 多轮手工优化) 结果2:脂溶性案例(Use Case II) 用户指令:“使用最快的可用模型和bottleneck特征,训练脂溶性回归模型” 系统自主决策(多智能体协调): 数据检索智能体从TDC获取脂溶性数据集(4,200分子) 计算分子描述符(LogP、TPSA等) 管理员智能体注意到LogP与脂溶性的强正相关(Pearson r ≈ 0.8) 自主决策:将RDKit LogP添加为额外特征,尽管用户未明确提及 模型训练智能体构建blender模型(bottleneck + LogP) 最终性能: R² = 0.8692 Pearson r = 0.9327 MAE = 0.3235 原理:bottleneck特征捕捉全局分子性质,而LogP提供显式的关键驱动因子,两者的组合产生协同效应。 ⚠ 小编锐评:脂溶性本身在化学中常用LogP量化。技术上不算作弊,但确实降低了科学价值: 角度 评价 实用性 ✅ 如果目标是”快速得到好性能”,这完全合理 科学性 ⚠️ 缺乏新洞察:我们早就知道LogP算法与实验LogP高度相关 模型泛化 ⚠️ 对其他ADMET性质(如溶解度、渗透性),这种”捷径”不存在 Agentic能力展示 ✅ 证明了LLM能发现特征-目标相关性并自主利用 图1:多智能体框架在脂溶性任务中的工作流程 原文中的Figure 1展示了以下步骤: 用户层:提出“使用最快的可用模型和bottleneck特征训练脂溶性回归模型”的自然语言指令 数据检索智能体:从Therapeutics Data Commons(TDC)自动定位并获取脂溶性数据集 管理员智能体的智能决策:系统被提示使用bottleneck特征进行快速执行,但框架自主发现了关键洞察——RDKit LogP与脂溶性具有显著的正相关性(Pearson相关系数 ≈ 0.8),因此主动决定将RDKit LogP添加为建模管道中的额外特征,尽管用户未明确要求 模型训练智能体:基于扩充的特征集(bottleneck + LogP)构建最终的回归模型 性能输出:包含预测与真实值的散点图以及模型性能指标 这个案例充分体现了agentic系统的自主推理能力——框架不是被动地执行指令,而是能够发现数据中的关键相关性并主动整合到建模流程中。 结果3:ABL1激酶Binding Affinity(Use Case III) 背景:ABL1(tyrosine-protein kinase ABL1)是关键的药物靶点(例如,伊马替尼靶向ABL1的癌症治疗)。准确的binding affinity预测对lead optimization至关重要。 数据: 1,078个化合物的3D结构、SDF与PDB文件 目标:pKi(结合亲和力) 系统采用的特征: BottleneckTransformer(2D) RDKit描述符 AffinityGraph(3D):整合原子-配体图、残基-蛋白质图、相互作用编码 fps_1024_2(另一Morgan指纹变体) 性能: R² = 0.72 Pearson r = 0.87 MAE = 0.75 kcal/mol RMSE = 0.91 kcal/mol RMSE解读:±0.91 kcal/mol的平均误差在药物设计中可接受(药物discovery通常目标精度为±1 kcal/mol)。 关键发现:AffinityGraph的加入相比仅用2D特征,R²提升约0.12,充分展示了3D信息的显著价值。 图2:智能体框架在ABL1激酶binding affinity任务中的工作流程 原文中的Figure 2概览了框架在binding affinity预测任务中的工作流程: 数据获取层:系统根据用户指令获取ABL1激酶复合物的3D结构数据(SDF与PDB文件),这些数据来自之前发表的研究 3D特征感知能力:框架能够整合和处理结构化学信息,充分利用3D结构数据的优势 特征生成管道:同时提取多类特征——BottleneckTransformer(2D学习)、RDKit描述符、AffinityGraph(3D图神经网络)与ProLIF相互作用指纹 智能体协调:各个智能体协同工作,将3D结构信息无缝集成到建模流程中 结果输出:最终的binding affinity预测模型,附带性能指标与可视化 案例的科学意义:这个案例演示了3D结构信息对binding affinity预测的关键作用,也展示了agentic框架在处理复杂、多模态数据时的灵活性——即使仅有2D分子结构,系统也能运行(如脂溶性案例);一旦有3D结构可用,框架又能自动利用这些信息以大幅提升性能。 Q&A Q1:为什么需要三个不同的计算预算级别? A1:反映现实中的资源约束与精度权衡。在早期筛选中,速度优先(Cheap预算,数秒内得到结果);在lead优化中,精度优先(Expensive,可接受数分钟计算)。LLM可根据任务的关键性自主选择。 Q2:AffinityGraph为何在binding affinity预测中效果显著? A2:Binding affinity是3D特异性的强函数。AffinityGraph通过图神经网络捕捉: 原子级细节:配体原子的类型、形式电荷 蛋白质环境:靶点残基的类型、位置、rotamer状态 相互作用指纹:特定的氢键、疏水接触等 这些信息无法仅从2D分子结构中获得。 Q3:MCP为什么对agentic系统至关重要? A3:MCP定义了标准化的JSON-RPC通信协议,使得: 任何LLM(Claude、GPT-4、开源模型)都能无缝调用 MolAgent 不同的agentic框架(Smolagents、LangChain、自定义系统)都能互操作 避免vendor lock-in,提升系统的可组合性与可维护性 Q4:Leave-group-out验证相比stratified validation的优势是什么? A4: Stratified validation:确保类别平衡,但可能让化学相似的化合物同时出现在训练与验证集中——导致过度乐观的性能估计(这在药物设计中很常见,称为activity cliff问题) Leave-group-out:整个化学系列(共享支架的化合物组)被保留,强制模型泛化到新颖的化学空间——更接近实际应用 Q5:为什么要进行嵌套交叉验证而不是简单的CV + 单独测试集? A5: 简单CV:在同一数据上进行模型选择和评估,产生选择偏差(选择的模型在特定CV分割上过度优化) 嵌套CV:内层用于选择,外层用于无偏评估,两者解耦,产生可靠的性能估计。学术标准实践。 关键结论与批判性总结 潜在影响 Agentic drug discovery的可行性验证:MolAgent证明了高保真的分子建模可以完全自动化,为autonomous discovery pipelines铺平道路 生成式AI在CADD中的实际应用:不再是“LLM可以生成分子”的宽泛声明,而是具体的、可部署的工具 学术-产业交汇:来自J&J等大制药公司的投入,表明业界对agentic方法的认真态度 开源生态:源代码开放(GitHub),降低采用门槛,可能激发后续的创新与改进 存在的局限性 数据集规模与多样性:TDC基准多为公开可用的数据(ChEMBL衍生),未必代表真实的药物discovery项目的数据分布(往往涉及专有数据、更复杂的化学空间) 模型可解释性:BottleneckTransformer与AffinityGraph均为黑箱模型。虽然ProLIF提供相互作用指纹的解释,但整体模型输出的解释性仍不如传统QSAR描述符 3D结构依赖:AffinityGraph需要高质量的3D复合物结构(PDB或MD快照)。在高通量筛选或早期发现阶段(仅有2D结构),这一优势无法充分利用 计算成本:虽然“廉价”预算已相对便宜,但Expensive预算(Bayesian优化+复杂集成)的计算成本未充分讨论。对大规模、数百万化合物的虚拟筛选,仍可能昂贵 agentic决策的可靠性:MolAgent展示了LLM能自主添加特征(脂溶性案例),但何时这种自主决策会失败(e.g., 添加无关特征导致过拟合)尚未系统研究 未来研究方向 跨领域迁移学习:预训练的BottleneckTransformer基于ChEMBL,对专有化学空间(例如蛋白降解剂、ADC)的适应性有待探索 多任务与多目标建模:现有框架主要针对单一性质。多约束优化(ADMET + 合成可行性 + 知识产权风险)的agentic协调仍是开放问题 动态特征选择:目前特征集相对固定。数据驱动的特征选择(在模型训练过程中动态移除低信息特征)可能进一步提升效率 不确定性量化:模型输出的置信度估计对drug discovery至关重要。集成方法提供某种形式的不确定性,但贝叶斯方法可能更鲁棒 小编锐评: 工具还是很容易被抢发,“要抓紧时间实施”。 这篇做得比较简单,但还是占坑了。
Machine Learning & AI
· 2025-11-09
Deep Learning破解双功能抗菌肽设计:DeepQSAR模型的应用与突破
Deep Learning破解双功能抗菌肽设计:DeepQSAR模型的应用与突破 本文信息 标题:The Use of DeepQSAR Models for the Discovery of Peptides with Enhanced Antimicrobial and Antibiofilm Potential 作者:Jiaying You, Hazem Mslati, Evan F. Haney, Noushin Akhoundsadegh, Robert E.W. Hancock, Artem Cherkasov 发表时间:2025年 单位:加拿大不列颠哥伦比亚大学(UBC)、渥太华大学,加拿大 引用格式:You, J., Mslati, H., Haney, E. F., Akhoundsadegh, N., Hancock, R. E. W., & Cherkasov, A. (2025). The use of DeepQSAR models for the discovery of peptides with enhanced antimicrobial and antibiofilm potential. Journal of Chemical Information and Modeling, https://doi.org/10.1021/acs.jcim.5c02138 源代码:https://github.com/chill-bear/peptides(包含数据预处理脚本、模型训练代码和图表生成脚本) 摘要 针对抗生素耐药性的全球危机,抗菌肽(AMPs)因其独特的直接杀菌机制和较低的抗性风险而被视为下一代治疗药物。然而,同时预测抗菌和抗生物膜活性的计算方法仍然匮乏。本研究开发了一种新型Deep QSAR框架,将前馈神经网络(用于定量预测生物膜抑制效率)与递归神经网络(用于二分类抗菌活性预测)相结合,通过迁移学习实现高效的多目标肽设计。模型在5折交叉验证中达到90%的准确率,准确度和召回率分别为0.90和0.88。基于模型预测和聚类分析,我们合成并验证了100个设计肽,其中44个显示出优于参照肽IDR-1018的抗生物膜活性,31个表现出更强的抗菌活性,29个实现了两种活性的同步增强。分子动力学(MD)模拟揭示了这些肽通过强而选择性的细菌膜结合机制(特别是多价的赖氨酸/精氨酸-磷脂酸酯相互作用)来实现其效能的。 核心结论 首次实现同时预测:开发了第一个能够同步预测抗菌和抗生物膜活性的Deep QSAR模型,突破了传统单一功能预测工具的局限 显著的性能优势:90%准确率(5折CV)、精确度0.90、召回率0.88,超过现有Macrel、AI4AMP和DBAASP等预测工具。 实验验证的成功率高:100个设计肽中29个实现双功能增强,展现出模型的实用价值。 最强肽的10倍增强:顶级肽MVLRIKLRLKIR对生物膜的IC50仅为0.147 μM,较参照肽(1.417 μM)低近10倍。 机制清晰:MD模拟证实膜结合和选择性是关键驱动因素,为进一步优化提供了理论基础。 背景 抗生素耐药性(AMR)已成为全球公共卫生危机。过度使用和滥用抗生素导致环境污染加剧,迫使微生物产生防御机制。这不仅削弱了现代医学的治疗效果,还增加了医疗成本和感染死亡率。然而,小分子抗生素的传统开发模式面临瓶颈:新药研发周期长、成本高、成功率低,而且耐药菌株快速进化。 抗菌肽(AMPs)是一类天然防御性蛋白质,广泛分布于细菌、植物、真菌和动物中。与传统小分子抗生素不同,AMPs通过直接破坏细菌膜(如pore formation、carpet机制)和诱导细胞内应激反应来杀灭病原体,这种机制导致耐药菌株发展的可能性大大降低。此外,AMPs还展现出对生物膜的抑制活性,这对治疗慢性感染和医疗器械相关感染至关重要。 然而,传统AMP发现仍依赖于高成本的高通量实验筛选和试错法。虽然机器学习(ML)和深度学习(DL)技术在近年来加速了肽设计过程,但现有的计算工具多专注于单一功能预测(通常是抗菌活性),而对生物膜抑制的预测能力有限。这导致发现同时具有两种功能的候选肽变得极其困难,阻碍了下一代治疗药物的开发。 关键科学问题 本研究针对以下核心问题进行了深入探索: 问题一:如何在同一模型框架中预测多个端点的AMP活性? 传统QSAR模型通常采用单一预测目标(如抗菌活性),基于简单的分子描述符或SMILES编码。而肽的序列和功能的多样性使得多目标预测成为独特挑战——需要模型既能捕捉序列模式信息,又能准确回归生物膜抑制的定量数据。 问题二:如何有效利用异质数据源进行转移学习? 本研究整合了自建的抗生物膜活性数据库(约700个肽,3000个数据点)和三个大规模公开AMP数据库(DRAMP、AI4AMP、DBAASP,共52000余条目)。这些数据来源差异大、标注方式不一、样本分布不均,如何在保证泛化性的同时充分利用这些信息是关键。 问题三:设计的肽能否真正优于参照标准? IDR-1018作为well-characterized的宿主防御肽,已被证明具有广谱抗生物膜活性。新设计肽需要通过实验验证来证明其优越性,这要求模型不仅预测准确,还需识别那些未被充分探索但具有高潜力的序列空间区域。 创新点 首个多功能Deep QSAR框架:融合前馈网络(定量)和RNN(分类),通过迁移学习实现抗菌和抗生物膜活性的同步预测,打破了传统单功能预测工具的局限 创新的双模型整合策略:Model 1的数值输出(生物膜IC50预测)直接馈入Model 2作为额外特征,增强了RNN对序列的理解,避免了简单的模型stacking 大规模数据融合:自建in-house数据库与DRAMP、AI4AMP、DBAASP三大公开库的整合,构建了迄今最全面的AMP训练集,提升了泛化能力 实验验证与机制解析的结合:不仅进行体外活性测试(抗菌、抗生物膜、溶血、细胞毒性),还通过微秒级MD模拟精准解析设计肽的膜相互作用,建立了序列-结构-活性的完整链条 研究内容 核心方法:DeepQSAR双模型框架 为了实现同时预测抗菌和抗生物膜活性,该研究设计了一个创新的两阶段深度学习框架。 graph TB A["肽序列<br/>MVLRIKLRLKIR"] --> B["One-hot编码<br/>每个氨基酸→20维向量"] subgraph "Model 1: 定量预测" B --> C["前馈神经网络<br/>FFNN"] C --> D["In-house数据训练<br/>约700肽, IC50数值"] D --> E["生物膜IC50输出<br/>定量预测"] end subgraph "Model 2: 分类预测" B --> F["递归神经网络<br/>BiLSTM"] F --> G["迁移学习<br/>Model 1权重初始化"] G --> H["公开数据集训练<br/>DRAMP、AI4AMP、DBAASP<br/>52000余个肽, 标签"] H --> I["抗菌活性分类<br/>二分类输出"] end E --> J["特征融合<br/>IC50预测 + 序列模式"] I --> J J --> K["最终预测<br/>双功能评分"] K --> L["聚类与筛选<br/>选择top肽合成验证"] 方法详述: 1.数据准备与编码: 使用One-hot编码将20种标准氨基酸转换为长度为20的二进制向量,保留了序列信息的顺序性。 自建in-house数据集由Kinexus生物信息公司合成的肽阵列组成,约700个唯一肽,每个肽测定了抗MRSA生物膜的IC50值(共3000个数据点)。 结合DRAMP(22259肽)、AI4AMP(10716正例+10718负例)和DBAASP(19751活性肽),构建了超过52000条目的训练集。 2.Model 1—前馈神经网络(定量预测): 基于in-house数据集构建,目标是学习肽序列和生物膜抑制IC50的定量关系 输入为One-hot编码的肽序列,通过多层前馈网络处理,直接输出IC50数值预测 这一模块为后续的RNN提供了生物膜抑制的数值信息基础 3.Model 2—递归神经网络(分类预测): 采用双向LSTM(BiLSTM)架构,针对抗菌活性进行二分类(活性/非活性) 关键创新是迁移学习:将Model 1的训练权重初始化到Model 2 使RNN能够继承关于肽序列和生物膜相互作用的知识,学习序列特定的抗菌模式 融合了定量的生物膜抑制信息,实现多维度特征学习 4.整合与特征融合: 将Model 1的IC50预测输出与Model 2的RNN架构级联(concatenate) 使分类器能够利用数值洞察和序列模式来做出更准确的预测。 设计优势:在架构层面实现了信息流的有机整合,比简单的模型融合更有优势。 数据集与实验方法 使用了四个主要数据源: In-house数据:约700个肽,3000个抗MRSA生物膜IC50测定数据 DRAMP:22259个肽,包含综合的已知AMP序列 AI4AMP:平衡数据集,10716个正例加10718个负例 DBAASP:19751个已实验验证的活性肽 肽的合成在芹菜素膜阵列上进行(Kinexus),通过如下步骤测定活性: 甲氧西林耐药金葡萄球菌(MRSA)用作检验菌株 肽浓度范围1-256 μg/mL,测定OD600(生长)和水晶紫吸收(生物膜) 使用非线性回归拟合IC50值(50%抑制浓度) 模型性能评估 图3:Model 1前馈神经网络的训练过程 前馈网络的平均绝对误差(MAE)和损失函数都随迭代次数逐步下降,最终在验证集上MAE约1.5,表明模型能够准确预测生物膜IC50的量级。训练和验证曲线显示稳定收敛,未出现过拟合现象。 图4:Model 2递归神经网络的分类性能 精确度-召回曲线(左)和ROC曲线(右)显示模型在不同阈值下都保持90%以上的精确度,同时维持88%的召回率。ROC曲线的AUC接近1.0,说明模型具有优异的区分活性和非活性肽的能力。 定量评估结果为: 精确度(正样本):0.90 召回率(正样本):0.88 F1得分:0.89(两个类都>0.88,说明性能均衡) 这些指标远优于现有工具(见附录对Macrel、AI4AMP和DBAASP的对比)。 高通量筛选与设计肽的验证 筛选流程: 从UniProt数据库中提取了20417个已审核的人类蛋白序列 过滤掉长度<100氨基酸的蛋白 使用滑动窗口方法(每次移动1个位置)系统性地分割成12-mer肽片段 对约50000个候选肽进行了预测,筛选出预测评分最高的100个 按照序列相似性进行层级聚类,从每个簇中选择最高评分肽用于化学合成和生物检验 图5:设计肽与训练肽的IC50对比 使用小提琴图展示了设计肽和训练肽在抗生物膜和抗菌两个维度的IC50分布。中位IC50值为: 活性类型 训练肽(μM) 设计肽(μM) 抗生物膜 1.59 0.91 抗菌(浮游) 1.46 1.42 设计肽的生物膜IC50显著低于训练肽,表明模型成功识别并优化了生物膜抑制特性。 图6:合成肽的有效性分类 100个设计肽按照相对于参照肽IDR-1018的表现分类: 44肽:抗生物膜活性更强 2肽:仅抗菌更强 25肽:两者都改善但幅度不同 29肽:两种活性都明显优于对照——这是最有价值的候选 顶级肽的表征 表1:Top 5双功能肽(抗生物膜与抗菌均优) 肽ID 序列 抗生物膜IC50(μM) 抗菌IC50(μM) 10 WKKKGRMRWKWI 0.27 0.74 20 LKIKVHIYRMKR 0.35 1.07 99 MLIRVRKLWRIL 0.24 0.70 40 RARGRKRLVVTI 0.30 1.18 86 RALKKIIKRLCR 0.38 0.70 IDR-1018(对照) VRLIVAVRIWRR 1.42 1.73 最强肽(ID 105, MVLRIKLRLKIR)在抗生物膜上达到0.147 μM,约为IDR-1018的1/10,这代表了迄今最强的AMP生物膜抑制活性之一。其抗菌IC50为1.29 μM,也优于对照的1.73 μM。 图7:阵列肽生物膜vs MRSA活性 该图展示了Top 5肽及对照肽在肽阵列上的生物膜和浮游菌抗性活性曲线。六个面板分别对应肽ID 10、20、99、40、86和105(对照为IDR-1018),每个肽的剂量-反应曲线清晰显示了其多维度效能,进一步验证了设计肽相比对照的改进。 安全性评估 为评估毒性风险,对三个代表肽(J20、J28、J39)进行了溶血和PBMC细胞毒性测定。结果表明: 溶血IC50:全部>250 μg/mL,显示对红细胞的膜破坏极小 PBMC细胞毒性:J28、J39的IC50 >250 μg/mL;J20为166 μg/mL 治疗窗口:生物膜IC50(MBIC)为1-4 μg/mL,远低于毒性阈值,提供了60-250倍的安全边际 这表明设计肽具有良好的生物相容性,适合进一步的临床前开发。 分子动力学揭示作用机制 通过微秒级MD模拟(GROMACS + MARTINI 3粗粒化力场),对43个设计肽在三种膜系统(革兰氏阳性菌模型、革兰氏阴性菌模型、哺乳动物细胞对照)中的相互作用进行了表征。 图8:MD模拟结果——肽-膜相互作用、驻留、选择性和构效关系 A子图 - 时间分辨赖氨酸/精氨酸-膜接触: 所有肽在50-100 ns内建立与膜的多价接触,然后维持高位 抗浮游设计肽:接触数最高(平均15.4,峰值16.7) 双功能肽:中间水平(约13.0) 抗生物膜肽:较低但稳定(约10.8) IDR-1018对照:接近抗生物膜肽(11-12) 非活性肽:无接触(缺乏赖氨酸/精氨酸) B子图 - 磷酸头基团接触密度分布: 磷酸头基团接触密度定义为肽与膜磷脂头基团(PO4)在0.5 nm范围内的接触数,反映肽与膜表面的结合密集程度: 抗浮游菌肽和双功能肽:峰值约3.3 抗生物膜肽:峰值约2.3 IDR-1018:约2.3(与抗生物膜类相同) 非活性肽:仅0.8(极少接触) 设计肽与膜表面的多价磷酸结合密度远高于对照肽,表明肽通过多个精氨酸/赖氨酸残基同时结合多个磷酸基团,形成稳定的多价网络结构,这是膜破坏和细胞溶解的前提条件。 C子图 - 肽-膜中面距离热力图: 热力图显示肽在1微秒模拟过程中与膜的轴向距离演变。根据原文,使用GP膜(革兰氏阳性,用于评估浮游菌杀伤)和GN膜(革兰氏阴性,用于评估生物膜抑制): 抗浮游菌肽和双功能肽:在GP膜上保持浅层驻留(z值约-0.5至0 nm),全程稳定 抗生物膜肽:在GN膜上保持近表层驻留(z值约-0.5至0 nm),持久不变 IDR-1018:界面驻留但波动更大,不如设计肽稳定 非活性肽:远离膜(z值小于-3 nm),无实质接触 D子图 - 选择性评估(细菌膜 vs 哺乳动物膜): 设计肽(所有类):接触数差(Δ)均值约30 contacts(相对于哺乳动物细胞膜),分布集中 IDR-1018:类似正偏移(25-30范围) 非活性肽:接近零(无选择性) E子图 - 构效关系(插入深度vs活性): 肽膜插入深度与活性的相关性分化明显: 抗菌活性(浮游,革兰氏阳性): Spearman相关:ρ = 0.69, p = 0.0045(显著正相关) 趋势:浅层插入与低IC50(高活性)强烈关联 解释:保持在浅表的肽能更有效地破坏膜结构,形成孔隙或地毯溶解;深度插入反而降低活性 抗生物膜活性(革兰氏阴性): 相关性:无显著相关(p > 0.05) 含义:生物膜抑制机制不依赖于膜插入深度,可能依赖于膜表面捕获后的胞内信号干扰(如ppGpp、quorum sensing) Q&A Q1: 为什么One-hot编码而不用其他肽特征(如BLOSUM矩阵、物化性质)? A1: One-hot编码保留了序列的精确顺序信息和完整的氨基酸恒等性,这对RNN学习局部和全局序列模式至关重要。物化性质或BLOSUM会损失肽的某些特异性特征(如某个Cys位置的disulfide潜力)。此外,One-hot编码与循环网络的设计在概念上更贴切——RNN本身就是为处理离散序列而优化的。 Q2: Model 1和Model 2之间的迁移学习具体如何工作? A2: Model 1在in-house抗生物膜数据集上训练,学习了肽序列到IC50(数值)的映射。其中间层权重编码了肽的生物膜亲和力。Model 2初始化时直接复制这些权重到BiLSTM的嵌入层,使RNN一开始就知道哪些序列特征与膜相互作用相关。后续在大型AMP分类数据集上微调时,RNN保留了这些初始化的特征,同时学习抗菌活性的额外模式。这比随机初始化快速得多,也减少了过拟合的风险。 Q3: 为什么选择12-mer作为设计肽的长度? A3: 12氨基酸是最小可行的功能肽长度(short peptides),足以形成α-螺旋或其他二级结构,但避免了合成和成本的复杂性。UniProt滑动窗口方法系统性地生成了大量候选,而12-mer的长度也是文献中well-characterized肽(如IDR系列)的标准。这样既保证了生物学意义,也便于后续的优化。 Q4: 设计肽对其他常见致病菌(如绿脓杆菌、肠杆菌)的活性如何? A4: 论文中仅报告了对MRSA的测定数据(革兰氏阳性)。对广谱活性的验证(包括革兰氏阴性菌)计划在后续研究中进行。MD模拟显示肽在革兰氏阴性模型膜上也有强劲的结合,但体外验证仍是必要的——这也是论文Discussion中强调的局限性。 关键结论与批判性总结 研究意义与影响 开创性的多目标预测框架:首次实现在单一模型中同时预测抗菌和抗生物膜活性,为多功能AMP设计树立了新范式 高实用性的设计管道:从50000个候选肽到100个合成肽,再到29个双功能增强肽,展现了29%的实现率,远超随机合成 强有力的实验验证:不仅测定了生物活性,还进行了毒性评估和分子动力学模拟,建立了序列-结构-活性的完整理解 开源资源分享:代码、数据和模型已上传GitHub,便于学术界复现和扩展 存在的局限性 单一菌株验证:实验仅在MRSA上进行,对其他常见致病菌(绿脓杆菌、鲍曼不动杆菌等)的广谱活性需进一步验证 体内模型缺失:所有活性数据来自体外测定(肽阵列),动物模型和临床相关性评估尚待进行 机制理解仍需深化:虽然MD模拟提供了膜相互作用的线索,但关于肽的具体杀菌模式(是否形成孔隙、地毯机制还是其他)仍需要补充生物物理学实验 长期稳定性未评估:肽的血清稳定性、给药形式和体内代谢还没有系统研究 未来研究方向 扩展菌种覆盖:针对多重耐药菌(MDR)、泛耐药菌(XDR)进行活性测定,包括临床分离株 动物模型验证:利用小鼠感染模型评估体内疗效和毒性,为临床前开发奠定基础 结构优化循环:基于MD洞察,进行理性的点突变和截断,进一步提升特异性和效能 AI模型迭代:整合更多数据源(如微生物组数据、宿主防御肽文献),开发下一代多参数预测模型
Machine Learning & AI
· 2025-11-09
DeepQSAR抗菌肽发现——技术细节与扩展数据
DeepQSAR抗菌肽发现——技术细节与扩展数据 完整数据集描述 In-house抗生物膜数据库 约700个唯一肽(多数为12-16氨基酸),由Kinexus生物信息公司通过肽阵列合成(SPOT-array technology)。每个肽针对MRSA进行了2折串联稀释测定,产生了3000个IC50数据点。 数据特征: IC50范围:0.09-50 μM(中位数~1.5 μM) 肽长度分布:8-18氨基酸为主,12-14mer最多 化学修饰:C端酰化(标准AMP格式),某些肽含有非标准氨基酸如Nle(仲亮氨酸)、Trp衍生物 DRAMP 3.0 (Database of Antimicrobial Peptides) 包含:22259肽条目 来源:已发表文献中已知的AMP,涵盖细菌、真菌、植物、昆虫、哺乳动物来源 标注:二进制(活性/非活性),基于文献报道的MIC或IC50阈值 优势:高覆盖度,包括多种菌种的活性信息(不仅限MRSA) 局限:某些条目可能基于定性描述而非精确数值 AI4AMP (Antimicrobial Peptide Predictor) 包含:平衡数据集,10716正例(已知活性AMP) + 10718负例(非AMP序列) 来源:公开AMP数据库与生成的非AMP背景 特点:经过特征工程优化(physicochemical property encoding) 用途:在本研究中主要用于验证和外部基准测试 性能(来自原始论文):精确度~90%,泛化性好 DBAASP v3 (Database of Antimicrobial Activity and Structure of Peptides) 包含:19751活性肽,附带实验验证的结构和活性数据 数据质量:高,仅收录已发表、经实验验证的肽 附加信息:包含部分肽的3D结构、膜交互描述符(如hydrophobic moment、charge distribution) 覆盖范围:广谱菌种(需要标准化处理) 数据集组合与预处理 四个数据源合并后,采用如下预处理步骤: 去重:基于精确序列匹配移除重复肽 长度过滤:保留8-20氨基酸,去除超短(<8aa)或超长(>20aa)肽,使分布更均匀 编码规范化:将所有非标准氨基酸(如Nle、Orn)映射到最相近的标准氨基酸(Leu、Lys) 标签一致化:对于在多个库中重复出现的肽,采用多数票法决定标签;如信息矛盾则排除 数据平衡:对于分类任务(Model 2),使用SMOTE或加权损失函数处理类不平衡 最终数据集规模:约52000个条目(去重后),其中正例(活性AMP)约占55% 详细方法学 Peptide Clustering算法 为减少合成肽的冗余性并保证序列空间的多样性覆盖,使用了层级聚类(Hierarchical Clustering): 相似性计算:对所有候选肽对进行全局序列比对(Needleman-Wunsch算法),计算相似度矩阵 聚类方法:AgglomerativeClustering(sklearn),使用欧式距离和完全链接(complete linkage) 聚类数:设置为100,对应最终的合成肽数量 代表选择:从每个簇中选择模型预测评分(combined score)最高的肽 优势:确保了100个合成肽均匀分布在5万个候选肽的序列空间中,最大化了发现新功能肽的概率 分子动力学模拟参数 软件和力场: MD引擎:GROMACS 2021.5 粗粒化力场:MARTINI 3.0(适合微秒级长模拟) 初始结构制备:α-螺旋(PeptideBuilder)→ martinize2转换 膜系统构建: 革兰氏阳性菌(GP)膜:POPG:Cardiolipin = 3:1(代表革兰氏阳性菌的外膜) 革兰氏阴性菌(GN)膜:POPE:POPG:Cardiolipin = 6:2:1(代表革兰氏阴性菌的内膜) 哺乳动物对照(MAM):100% POPC(代表人类红细胞膜,用于评估选择性) 模拟条件: 系统尺寸:~15×15×35 nm³ 离子浓度:0.15 M NaCl 温度:323 K(50°C,适合MARTINI) 压力:1 bar(semi-isotropic) 时间步长:20 fs(粗粒化允许) 运行时间:1 μs/复制本,3个复制本/肽/膜(共9 μs/肽) 模拟后分析: 肽-膜接触数(0.5 nm cutoff) Lys/Arg-磷酸基团相互作用(多价结合) 肽中心质量(COM)与膜中面的距离(评估插入深度) RMSD/RMSF(结构稳定性) Spearman相关分析:深度 vs log(IC50),评估插入-活性关系 结果验证:使用MDAnalysis (Python)进行轨迹解析,所有时间序列数据经3个复制本平均后,仅用未平滑数据进行统计(只有图中的类别均值经高斯平滑σ=5) Top 10肽完整列表 Table 1: 最强10个抗生物膜肽 肽ID 序列 抗生物膜IC50(μM) 说明 105 MVLRIKLRLKIR 0.147 最强,约IDR-1018的1/10 39 RGFVRLKKWFNI 0.23 含Trp,可能增强膜插入 99 MLIRVRKLWRIL 0.24 双功能候选(也在抗菌Top 10) 10 WKKKGRMRWKWI 0.27 高Lys密度,强静电结合 59 FRVCYRGICYRK 0.30 含Cys,可能形成disulfide 40 RARGRKRLVVTI 0.30 双功能候选 28 FRVCYRGICYRR 0.35 精氨酸富集,膜结合强 20 LKIKVHIYRMKR 0.35 双功能候选,含疏水残基 86 RALKKIIKRLCR 0.38 双功能候选,平衡疏水-亲水 IDR-1018(对照) VRLIVAVRIWRR 1.42 参照标准 Table 2: 最强10个抗菌(浮游)肽 肽ID 序列 抗菌IC50(μM) 说明 99 MLIRVRKLWRIL 0.70 最强,双功能 86 RALKKIIKRLCR 0.71 双功能,高效率 10 WKKKGRMRWKWI 0.74 双功能 102 VLRIGWILWRIS 0.84 高疏水性 62 RRRAKGRIRLIV 0.89 Arg富集 100 LLILWRKLWILR 1.02 疏水性主导 2 GRMRWKWIKKRI 1.03 基础设计 20 LKIKVHIYRMKR 1.07 双功能 33 GLKSFARVLKKI 1.15 序列多样性 40 RARGRKRLVVTI 1.18 双功能 IDR-1018(对照) VRLIVAVRIWRR 1.73 参照标准 关键观察: 5个肽同时出现在两个Top 10中(ID 10, 20, 40, 86, 99),这些是最有价值的候选 抗生物膜肽倾向于高Lys/Arg密度和Trp含量(增强膜亲和力) 抗菌肽显示更多的疏水残基组合(增强膜插入和破坏能力) 与其他AMP预测工具的对比分析 三种现有工具的性能 本研究在29个实验验证优于IDR-1018的肽上,对比了三个广泛使用的AMP预测工具: Macrel (AMP Mining in Genomes and Metagenomes) 原理:22个物化描述符(电荷、疏水性矩、二级结构倾向等) + 传统ML分类器 结果: 29个验证肽的预测评分范围集中在0.50-0.60区间 接近默认阈值(0.50),导致低区分度 假阴性率高,精确度~50%,召回率同样低 局限:Macrel设计用于基因组/宏基因组挖掘(未知序列背景),对已知AMP数据库的表现不理想 AI4AMP (Antimicrobial Peptide Predictor) 原理:物化性质编码 + 卷积神经网络(CNN) 性能: 在定性上,对多数29个肽给出了高AMP概率评分 但当以IDR-1018的评分作为分类阈值时,精确度和召回率均~50% 混淆矩阵显示该阈值选择不当,导致过多假阳性或假阴性 优点:模型本身性能不错,但对于高活性肽的定量区分有限 DBAASP Predictor 原理:三个膜交互相关描述符(hydrophobic moment、charge density、membrane-depth potential) 结果: 29个肽中,正负预测几乎均分(接近50:50) 基于这三个特征的区分能力有限 虽然这些描述符在AMP设计中重要,但单独使用不足以预测多功能性 反思:强调了序列-序列相关性(通过RNN捕捉)的重要性,单纯依靠物化特性难以抓住功能差异 DeepQSAR的优势总结 指标 Macrel AI4AMP DBAASP DeepQSAR 精确度 ~50% ~50% ~50% 90% 召回率 低 低-中 低 88% F1得分 <0.5 0.40-0.50 <0.5 0.89 多目标预测 否 否 否 是 泛化性 有限 中等 一般 优异 计算成本 低 中 低 中-高 毒性与安全性数据 溶血活性 三个代表肽(J20、J28、J39)在人红细胞上的溶血测定: 图S1展示的浓度-反应曲线表明: J20 (LKIKVHIYRMKR):IC50 >250 μg/mL(上限未达),极低溶血风险 J28 (FRVCYRGICYRR):IC50 >250 μg/mL J39 (RGFVRLKKWFNI):IC50 >250 μg/mL 解释:即使在256 μg/mL(最高测试浓度),红细胞溶解也<10%,说明对宿主细胞膜的破坏最小。相比之下,许多阳性对照AMP在10-50 μg/mL即表现出明显溶血。 PBMC细胞毒性 外周血单核细胞(PBMCs)对肽的耐受性评估: 数据来自Table S1: | 肽 | PBMC IC50(μg/mL) | 与MBIC的倍数差 | 评价 | |—-|—————-|————-|——| | J20 | 166.1 | 41-166倍 | 中等毒性 | | J28 | >250 | >62.5-250倍 | 低毒性 | | J39 | >250 | >62.5-250倍 | 低毒性 | 最小生物膜抑制浓度(MBIC):1-4 μg/mL(与IC50测定相同条件) 治疗窗口:毒性IC50 / MBIC = 62-250倍,足以支持临床前开发(理想值通常>10倍) PBMC毒性的分化原因: J28/J39高度耐受,可能与其特定的Cys、Tyr组成(可能稳定膜界面而不破坏)有关 J20的中等毒性可能源于其高Lys密度,在高浓度时对人细胞也有一定膜扰动 补充图表详解 Figure S1: 溶血活性曲线 左图为Hemolysis,右图为PBMC Cytotoxicity,横轴肽浓度(log scale, 0.6-256 μg/mL),纵轴为百分比溶解/毒性。三条曲线代表J20(蓝)、J28(红)、J39(绿)。 关键发现:三肽在1-256范围内溶血均<15%,PBMC毒性中J28/J39始终<10%,J20在128-256 μg/mL才明显上升。 Figure S2: Macrel预测分布 柱状图显示29个验证肽的Macrel评分分布。评分集中在0.50-0.60,大多聚集在单一柱子(34.5%),显示低区分度。 Figure S3: AI4AMP概率评分 曲线图显示概率分布,大多肽评分在0.7-1.0(高AMP概率),但相对于IDR-1018基准(虚线)的区分不足。 Figure S4: DBAASP混淆矩阵 左侧混淆矩阵显示,DBAASP的预测与实际结果的吻合度低,正负预测几近等分。 数据获取与复现 所有数据、代码和预训练模型已公开发布在GitHub仓库: 地址: https://github.com/chill-bear/peptides 内容: data/: 原始IC50数据(CSV)、聚类结果、验证肽序列 models/: 预训练的Model 1和Model 2权重(HDF5格式) scripts/: One-hot编码、模型训练、超参数调优、图表生成代码(Python) md_simulations/: MD设置文件(.top, .gro, .mdp)、轨迹分析脚本 复现步骤: Clone仓库并安装依赖(TensorFlow, scikit-learn, MDAnalysis等) 运行预处理脚本整合四个数据源 使用提供的超参数训练Model 1和Model 2 对自有候选肽进行预测和聚类 用GROMACS运行MD模拟,使用MDAnalysis脚本分析 注意:MD模拟计算密集,建议使用GPU集群或HPC资源;单肽1 μs的三复制本约需2-4小时(单CPU)。
Machine Learning & AI
· 2025-11-09
人工智能必须更科学:让AI与科学方法兼容
人工智能必须更科学:让AI与科学方法兼容 本文信息 标题: 人工智能必须更“科学”:让AI与科学方法兼容 作者: Peter V. Coveney, Roger Highfield 发表时间: 2024年7月27日 单位: University College London(英国);University of Amsterdam(荷兰);Ludwig Maximilian University of Munich(德国);Science Museum London(英国);University of Oxford(英国) 引用格式: Coveney, P. V., & Highfield, R. (2024). Artificial Intelligence Must Be Made More Scientific. Journal of Chemical Information and Modeling, 64(13), 5739–5741. https://doi.org/10.1021/acs.jcim.4c01091 摘要 随着人工智能在科研中的作用不断扩大,作者评估了其对研究实践的影响,指出当前一代AI缺乏可重复性、缺乏透明性、缺乏客观性以及缺乏机制层面的理解。文章强调,科学的核心在于经验与理性的统一,通过理论与实验的循环推动知识进步;而当下许多AI系统更多停留在统计拟合与相关性层面,难以提供可解释的不确定性与因果机制。作者以AlphaFold与机器学习势能(MLIP)为例,比较了基于物理的模型与纯数据驱动方法在不确定性量化与参数可解释性上的差异;讨论了生成式方法与大模型在再现性、数据依赖与人类偏见方面的局限。为使AI真正惠及科学研究,作者主张发展与科学方法完全兼容的AI形态,包括可解释AI、因果AI与与物理定律耦合的Big AI。 核心结论 AI要服务科学,必须满足可重复性、透明性、客观性与机制解释 单纯基于相关性的黑箱模型难以量化不确定性,也难以支撑科学理解 与物理约束、可解释机制和因果推断相结合的AI更接近科学方法 科学共同体需要对AI提出更高标准,而非被炒作与功利目标牵引 全文翻译 人工智能在科学中的作用与日俱增。我们在此评估其对研究的影响,并指出AI常常缺少可重复性、透明性、客观性与机制层面的理解。要确保AI真正造福研究,我们需要发展与科学方法完全兼容的AI形式。 人工智能正在深入科学,尽管它距离媒体标题中更离奇的宣称还有很长的路。但它是否改变了我们对科学的理解?答案是一个明确的不会。在许多方面,当前一代AI甚至谈不上科学。 关于科学的确切定义,哲学家与科学史家存在分歧,但普遍共识是:科学是观察与理性的融合。极端经验主义(只有数据没有理论)与极端理性主义(只有理论没有数据)早在几个世纪前就被摒弃了。取而代之,科学家将理论用于做出预测并引导新实验,通过实验产出数据以塑造理论,周而复始。可重复性被赋予极高权重,这保证了科学的客观性,也使其区别于其他人类活动。 几百年前,培根用“蜜蜂”比喻科学家如何滋养理性与经验的共生。随着计算机兴起,另一种科学形态兴起:模拟能够给出可操作的预测。将描述我们对大气与海洋理解的数学模型,与来自卫星与地面站的数据结合,就能进行挽救生命的天气预报。面向未来的最具代表性的例子,是人体的数字孪生。 如今我们进入计算的新纪元,AI的重要性不断上升。然而少有人记得此前的炒作与低谷周期。我们也常忘记,人类 20 瓦的大脑能力依然惊人,哪怕与耗能高出一百万倍的百亿亿次超级计算机相比亦然。令人尴尬的是,关于“自然智能”的公认定义并不存在,那么我们所谓的“AI”究竟指什么?我们对计算机寄予了过度信任。 尽管有这些问题,美国大型科技公司仍在做出大胆甚至夸张的宣称。它们有一个压倒性的动机:盈利。大型机构因害怕错过风口而争相拥抱AI。政府也乐于上车,指望AI让其更有效率、更有说服力。 一些最狂热的追随者宣称,计算机算法可以超越人类智能,机器能够接管人类的许多职能。具有讽刺意味的是,其中一些最夸张的说法来自那些依赖大规模众包劳工的公司——贝索斯称之为人工的人工智能或伪AI,用来帮助AI完成繁琐却棘手的任务。 人们懒于思考地假设AI也可以做科学。但机器学习方法过去与现在本质上都是模式发现者,旨在解决工程技术问题。它们的起源更多与情报与安全部门有关,目标是让计算机从海量数据中筛选线索,而非让科学家理解自然。 在这个领域AI当然能发挥作用。最著名的例子或许是蛋白质结构预测软件AlphaFold,它绘制了几乎所有已知蛋白的“结构宇宙”。对分子生物学家来说,AlphaFold是X射线晶体学的快速替代。和许多机器学习一样,AlphaFold最擅长处理它被训练“见过”的模式。但由于本质上接近“查找表”,我们很难判断它在什么情况下可靠、在什么情况下会失效。换言之,量化它的不确定性很困难。 另一个热门话题是用AI学习相互作用势能(MLIP),以供经典分子动力学仿真。决定这些势函数的形式或参数化是繁琐的,因此有人提出用AI从尽可能大的数据集中学习从原子性质到分子势能或其他量的映射。这会得到一个拥有几十万个拟合参数的神经网络——这些参数是神经元之间的连接权重。同样地,量化这类MLIP的不确定性很难,原因有二:参数数量过多,且这些参数只是拟合参数,没有内在的物理化学含义。 事实上,我们对分子相互作用的科学理解已经很成熟。因而也可以采用基于物理的相互作用势,其项具有明确的科学意义,参数数量从数百到几千不等。借助可扩展的不确定性量化方法,人们发现通常只有 10 到 20 个力场参数对目标性质具有显著影响。换句话说,我们能够获得哪些参数重要的真实洞见与理解。 相比之下,我们很难理解MLIP或AlphaFold内部发生了什么。这些系统需要从几十万到上亿级的参数。一方面,天文数量级的参数解释了为何机器学习能够拟合大量任意关系;另一方面,这也导致其不可靠,且无法给出令人满意的科学解释。 此外,它们通常在选定的数据集上训练,再以较小的验证集做评估。但换一个数据集,它们是否仍然有效?很多时候并不行,因为此时模型在做外推而非内插。 生成式方法存在类似问题,且更依赖随机数发生器,因此更进一步地说,代码每次运行都会给出不同答案。这让人联想到分子动力学:一次性模拟不可复现。可重复性还面临其他挑战,包括获取底层数据与机器学习算法的渠道,这些可能被保密,且有时还需要大量算力的支持。 科学追求的是理解,而AI依赖的是统计推断。这并非错误本身,但请记住:相关并不等于因果。借助遍历性、拉姆齐理论与算法信息论,可以证明:大数据库中会包含任意多的相关性,且相关性的数量随着数据量而快速增加,而非随着数据“本质”的改变而变化。即使在随机生成的超大数据库中也会涌现大量相关性,这意味着大多数相关性是伪的。要从中筛出真正的相关性,需要科学方法。 尽管计算机创造了“客观性”的表象,人仍然在AI的建立与使用中居于核心。大多数情况下,为了训练AI,你必须预先定义AI将把答案归入的类别。但任何这种分类都是任意的、歧义丛生,反映开发者自身的动机:人类偏见被烘焙进AI之中,在训练之前就已存在。 AI通常建立在一系列也体现人类选择的假设之上,而非源于科学。例如,几乎所有机器学习算法都假设内部数据分析变量之间的关系是平滑可微的。这纯粹出于方便,便于使用线性代数、标准软件库以及GPU加速。然而,AI与机器学习确实能产生各种非线性预测。这是因为在以线性代数为主的同时,它们加入了将输入映射到输出的非线性激活函数。 如果我们自我安慰地假定世界处处可微,就可能进一步假定:在浮点数表示上从双精度退到半精度乃至四分之一精度牺牲一点精确度无关紧要,或者高斯统计的钟形曲线是无所不能的。在真实世界中,这些假设通常不成立。尖锐的不连续广泛存在,这是非线性行为的标志。 归根结底,世界高度是非线性的。因为非线性科学直觉上难以把握且往往不可微,人们会倾向于回避它。非线性的极端表现之一是:舍入误差会在数字计算机中引发深远影响——这一点常被忽视。 可以理解,为什么一些科学家把AI当作替代培根蜜蜂的方案:在诸如生命科学这样的复杂领域,AI对答案的追逐而非对理解的追求,的确具有诱惑力。但在医疗等领域,这是不可接受的。我们必须理解治疗方案如何起作用,且消除其内在偏见——不仅是训练数据的代表性问题,还包括AI系统在设计之初的偏见。 一些人对新一波基础模型的兴奋在增长。这些通用目的AI被宣传为可以通过类似聊天界面的交互来解决科学家的问题。所谓AI4Science的例子包括用于分子分布的DiG、无机材料设计的MatterGen、以及目标感知分子生成的TamGen。 当这些模型雨点般出现时,我们不应放弃科学的堡垒。相反,是时候要求AI与机器学习遵循最高标准的科学探索。我们需要把重点放在可重复性上,更重要的是强调提供机制洞见与理解的理论概念与方法。 AI无疑能给科学带来巨大益处,但我们绝不可背离三百年来经受考验的理性与经验的可重复融合。一条可行路径是可解释AI,另一条是我们应拥抱因果AI;前提是AI能够以科学术语解释其内部机理与预测。第三条路径是Big AI,即将机器学习与基于物理的方法结合,使AI受自然规律约束。在这些语境下,二者的优缺点相辅相成,在药物发现等任务中结合更可能奏效。 科学是人类最珍贵的创造之一,比以往任何时候都更需要捍卫与阐明。培根的蜜蜂正受到AI的威胁,而它们需要繁盛。AI必须遵循科学方法。 小编锐评: AI当然非常有用,我们天天都在高强度使用。但我讨厌的是追逐风口就能盈利这种环境,某些“宣讲/本子不带AI就会被拒”的现象之下,是舍本逐末,是人类的非理性。 至于在科学领域上的应用,需要明确地定义该模型的使用范围,严格地遵守规范(如OECD Principles)。做科学最终是要回到逻辑上的,也许真正的可解释性不存在或只能从数学上理解,那它们也永远是做engineering的工具或人类的智能助手。
Machine Learning & AI
· 2025-11-07
生成式主动学习+物理模拟:详细结果分析(附录)
TNKS2靶点详细结果与补充分析(附录) 本附录包含TNKS2靶点的详细figure描述、图表解读和补充分析,是主文档的延伸。 TNKS2详细结果分析 代理模型质量对比 图9:TNKS2中代理模型预测精度的提升 对比了批大小为100、500和1000分子的ChemProp代理模型对ΔG的预测与ESMACS计算值,展示选定的GAL迭代步骤。图中插入R²系数及Spearman/Kendall秩相关系数(ρ和τ)。每次迭代中所有代理模型预测和ESMACS计算的平均ΔG值用红色圆圈标示。所有能量值单位为kcal/mol。完整的所有训练批大小和迭代步骤的结果见补充图S8。与3CLpro相比,TNKS2的代理模型质量明显更优。 结合自由能分布与收敛性 图10:TNKS2中结合自由能分布的演变 展示了TNKS2在选定GAL迭代轮次和不同批大小(100、500、1000)下,计算得到的ΔG分布。10000个种子化合物的初始分布用绿色显示(批次0)。27个实验验证的同系物的ΔG分布用红色显示,用于对比。与3CLpro相比,TNKS2的收敛速度极快,仅需单次迭代甚至部分批次就可实现显著改善。所有批大小和迭代步骤的完整结果见补充图S9。 多维性能指标 图11:TNKS2的多维分析(a−d) 展示了四个关键指标的演变: (a) 结合自由能分布:各批大小下,累积生成化合物库中ΔG最低的100个化合物的ΔG分布演变。随迭代逐步向更低能量移动。 (b) Tanimoto相似度分布:所有分子对的相似度分布,反映生成化合物的结构多样性。越往较大值延伸表示结构越相似。 (c) 结构簇数:Butina算法(相似度截断0.5)检测到的结构簇数,随迭代递减,体现化学空间收敛。 (d) 与初始库的差异度:生成高分子与初始27个实验同系物间的Tanimoto相似度分布,多数值<0.3,证明了真正的结构创新而非简单的同系物延伸。 化学结构创新 图12:TNKS2的代表性化合物结构 展示了ΔG最低的代表性化学结构,来自TNKS2的精选结构簇。选择了8个最多人口的簇,以及4个ΔG最低的簇。聚类分析基于各迭代后积累池中ΔG最低的100个化合物,对应(a) n=100和(b) n=1000的GAL训练批大小。 值得注意的是,尽管初始样本仅基于一个小的同系物群体(共享喹唑啉酮支架),生成的高分子却体现了多种不同的化学支架,包括腈基、桥环和其他特殊取代基。这说明GAL有效地突破了初始库的限制,发现了本质上新颖的分子。 化学空间探索 图13:TNKS2的化学空间探索(t-SNE可视化) 使用t-SNE将所有批大小组合数据的Morgan指纹投影到二维空间,展示GAL过程中不同训练批大小所遍历的化学空间。 迭代0(黄色):来自10000个初始化合物 实验配体(浅蓝色):27个实验验证的同系物,聚集在一个极小区域内 生成分子(按不同颜色编码):大幅扩展到远离初始库的新化学空间,形成多个分离的簇 这一特征与3CLpro形成对比,反映了封闭口袋对化学空间探索范围的约束。 配体结合模式分析 图14:TNKS2中四个代表性高亲和力配体的结合模式 展示了(a−d)四个精选配体与TNKS2结合口袋的三维相互作用。配体来自最大(1000, a,b)和最小(100, c,d)的训练批大小。 与3CLpro明显不同的是,TNKS2的封闭结合口袋限制了结合模式的多样性。生成的配体采用更加一致的结合策略,但同时能够通过精细的取代基优化(如腈基定位)来逐步提升亲和力。这解释了为什么TNKS2的代理模型质量更优——1D SMILES与3D结合姿态的对应性更明确。 计算效率详细分析 图15:TNKS2中计算效率指标 展示了GAL对TNKS2的计算效率η(定义为每次Oracle调用发现的结构簇数),按不同的训练批大小着色,各迭代步骤后计算。 参数设定: ΔG max = -35 kcal/mol:强调多样性探索(命中发现阶段) ΔG max = -40 kcal/mol:强调亲和力优化(先导优化阶段) 相似度截断(s cutoff):分别为0.7和0.3 与3CLpro相比,TNKS2的效率在n≥500时提升最显著,而n=100在多数探索情景下表现最优。这反映了靶点特性与批大小参数的耦合关系:封闭口袋需要较大批大小来保证代理模型收敛,但过小的批大小反而能在探索阶段保持多样性。 靶点对比的深层洞察 3CLpro vs TNKS2:结构与函数的对话 维度 3CLpro(开放口袋) TNKS2(封闭口袋) 蛋白结构 大型、多区域、分叉 狭窄、单一、受限 配体结合模式 高度多样(>5种主要模式) 一致性强(1-2种主导模式) 代理模型质量 初期低(ρ~0.1),后期中等(ρ~0.6) 早期高(ρ>0.7),保持稳定 收敛速度 缓慢(需7轮迭代) 快速(需1-3轮迭代) 化学空间探索 广泛分散,多个独立簇 相对集中,逐步深化 最优批大小 n=250(小批,多迭代) n=100或n≥500(分化策略) 特征官能团 多样化 重复出现特定基团(腈、桥环) 为什么TNKS2更优? 结构约束性强:狭窄口袋建立了SMILES→3D结合姿态的清晰映射,使ChemProp能有效学习配体结构与亲和力的关系 数据质量高:初始27个同系物来自实验验证,而3CLpro的10000个化合物基于Docking评分(可能含假阳性) 样本多样性:虽然初始库小,但通过GAL生成的化合物跨越多个化学支架,为代理模型提供了足够的训练信号 最优化目标清晰:口袋的拓扑局限性使得优化目标明确(特定基团定位),而非3CLpro的多模式竞争 补充技术细节 BindingDB增强实验 研究还探索了用BindingDB中的TNKS2 IC50数据增强代理模型。结果表明: 代理模型质量与未增强版本相当(补充图S12) 平均Tanimoto相似度基本相同(0.16 vs 0.15) BindingDB数据的增益有限 这反映出:当已有高质量同系物数据时,额外的异源数据可能引入噪声而非增益。设计实验时应谨慎权衡。 药物性评估 研究观察到大批大小(n≥700)的生成分子具有更高的QED评分(补充图S14),表示更高的”药物性”。但同时也发现某些分子含有非典型药物官能团(补充图S12b),需要额外的合成可行性评估。 失败案例分析 论文未详细讨论failed ESMACS runs的处理,但在实际应用中应: 设置收敛标准:如果10副本中<70%收敛,标记为失败 重新运行策略:失败分子可重新评估或标记为”不可评估” 反向使用:某些失败信号可能反映分子的固有不稳定性,可用于过滤 与传统方法的成本比较 虽然论文未给出详细的RBFE(相对结合自由能)成本对比,但可估算: ESMACS单分子评估:~5分钟(GPU)或~20分钟(CPU) Docking单分子评估:~秒级,但精度差 传统HTS(实验):~天级,且成本~$1000-10000/化合物 GAL的优势在于用Oracle调用(~100-1000次)代替盲目筛选(百万级),在超算支持下成本可控。 计算效率与实现 该研究在Frontier超算(美国橡岭国家实验室,全球首台艾字节级超算)上部署: 总计算量:~17,440(3CLpro)+ ~22,000(TNKS2)次ESMACS计算 ≈ 2毫秒MD 墙钟时间:单个GAL迭代(整批化合物评估)仅需50分钟(GPU使用率:150 ns/day/AMD Instinct MI250X) 并行度:所有化合物同步评估,充分利用超算的并行性能 协议精简:采用粗粒化ESMACS(10副本而非标准25副本),牺牲少量精度换取>2倍加速 这一效率水平在实验室规模GPU集群上难以实现,说明高性能计算与AI算法的结合是实现GAL大规模应用的必要条件。 推荐的后续研究 多轮集成强化学习:运行多个独立REINVENT进程,用多个ChemProp模型集成,量化随机性对多样性的贡献 结构感知的代理模型:将蛋白质结构编码进ChemProp(如蛋白质embedding或接触图),突破目前的”仅配体”限制 多保真度学习:结合便宜的Docking与贵的ESMACS,设计多保真度代理(本研究BindingDB实验表明有限效益,可重新设计) 实验验证:选中几个GAL生成的高分子进行体外实验(细胞膜透性、激酶抑制)和晶体结构验证
Machine Learning & AI
· 2025-11-07
Image-based Molecular Representation Learning in Drug Development: A Comprehensive Review of Methods, Implementation, and Applications
基于图像的分子表征学习在药物开发中的应用:方法、实现与应用的综合综述 I. 引言 A. AI驱动的药物发现中对先进分子表征的需求 人工智能(AI)的应用极大地推动了药物发现领域的发展。传统上,AI依赖于多种分子表征方式,如一维指纹图、二维描述符、用于自然语言处理(NLP)任务的简化分子线性输入系统(SMILES)字符串,以及用于图神经网络(GNN)的分子图。这些表征方法是基础性的,但在捕捉对药物开发流程中高精度预测至关重要的显式、细致的结构信息或复杂生物学特征方面可能存在局限性[^1]。例如,分子指纹图谱通常“未能反映分子的显式结构信息”,而NLP和GNN方法虽然功能强大,但在“准确捕捉分子特性和重要生物学特征方面的表达能力可能有限”[^1]。 每种化学物质固有的独特视觉表征为AI驱动的分析提供了一个直观且可能更强大的途径[^1]。向基于图像的方法论转变的驱动力来自几个优势:(1)通过分析图像中原子类型、其相对位置以及它们之间的连接,有效识别不同的化学物质;(2)能够利用计算机视觉(CV)领域中丰富、成熟且复杂的既有技术;(3)有潜力捕捉和提取通过其他表征形式难以获取的复杂潜在结构模式和属性关系[^1]。以往方法在全面编码分子信息方面的不足,直接推动了将视觉表征学习作为一种更具表现力的替代方案的探索和发展。 本报告全面综述了将分子数据转换为多种基于图像的模态的当代和新兴技术。具体而言,它将涵盖二维图像(静态和多通道)、三维表征(包括三维构象的二维快照、体素网格、基于表面的模型和点云)以及序列/视频格式。本报告将深入探讨图像生成的方法论,详细介绍基于Python的实现(重点是关键库和可用的代码示例),探索卷积神经网络(CNN)在药物发现中对这些表征的应用,并提供相关的学术引文。 B. 报告的范围和方法结构 本报告旨在系统地探索分子到图像转换的领域,目标是为研究人员提供一份详细、技术性和可操作的指南。 探索将从二维(2D)分子图像表征开始,涵盖从SMILES字符串生成的标准2D描绘,以及将显式化学特征编码到图像层中的更高级多通道图像。 随后,报告将转向三维(3D)分子表征。此部分内容丰富,将详细讨论: 源自三维构象异构体的二维快照图像,捕捉多个视角。 适用于三维CNN的体素化网格表征。 关注分子拓扑结构和表面理化性质的基于表面的模型。 将分子表示为具有相关特征的三维坐标集的直接点云方法。 接着将探讨新兴的分子序列和视频表征领域,重点关注如VideoMol等旨在捕捉分子动力学的技术。 一个专门的部分将涵盖多模态及其他相关方法,包括图像数据与其他模态(文本、图)的整合、迁移学习策略和自监督学习范式。 对于每种不同的模态,讨论将强调: 生成技术:将分子结构(主要来自SMILES、SDF或PDB格式)转换为目标图像类型的基本原理和算法。 关键工具和Python库:实用性地关注广泛使用的工具,如RDKit、Maestro、PyMOL,以及专门的库如DeepChem和libmolgrid。 实现细节:在可获得的情况下,将提供对公共代码库的引用(例如,来自[^1]的GitHub链接)和说明性的Python代码片段。 CNN应用:具体示例说明这些图像表征如何与CNN和几何深度学习(GDL)模型结合,用于各种药物发现任务(例如,定量构效关系(QSAR)建模、吸收、分布、代谢、排泄和毒性(ADMET)预测、药物-靶点相互作用(DTI)识别)。 广义计算机视觉领域的快速发展和成功是基于图像的化学信息学的重要催化剂。CNN架构的成熟以及为通用视觉任务开发的预训练模型的可用性,大大降低了将这些技术应用于化学数据的“活化能”[^1]。这种技术的迁移是一个反复出现的主题。 报告最后将对这些模态进行比较总结,强调它们各自的优势、局限性和计算考量,随后展望未来的研究轨迹。基于图像的表征的探索是整合多样化数据类型的更大趋势的一部分。随着这些技术的成熟,它们与其他模态(如基因组数据、蛋白质组信息、文本描述[^1]和分子图)的融合,有望实现对药物行为和结构-性质关系更全面、更细致的理解。 II. 二维(2D)分子图像表征 二维图像是分子最直接的视觉表征,通常源自SMILES字符串。它们具有简单和直观的特点,使其成为分子设计和分析,特别是高通量应用中一个引人注目的选择[^1]。 A. 二维分子图像的生成 1. 使用RDKit从SMILES生成 RDKit: 解析SMILES、生成二维坐标和渲染分子图像的主要库[^11]。其GitHub仓库是 https://github.com/rdkit/rdkit[^1]。 RDKit是一个核心的开源化学信息学工具包,广泛用于将SMILES字符串转换为二维分子图像[^1]。一般的工作流程包括解析SMILES字符串以创建RDKit Mol对象,生成用于描绘的二维坐标,然后将此布局渲染成图像格式,通常是Python中的PIL Image对象[^1]。 关键RDKit模块和函数: Chem.MolFromSmiles():将SMILES字符串解析为RDKit Mol对象[^2]。 Draw.MolToImage():从Mol对象生成PIL Image。它允许基本的自定义,如图像大小、kekulization和楔形键的显示[^4]。 Draw.MolDraw2DCairo 和 Draw.MolDraw2DSVG:高级2D绘图类。MolDraw2DCairo生成光栅图像(如PNG),MolDraw2DSVG生成矢量图像。它们提供更细致的绘图选项控制[^5]。 rdDepictor.Compute2DCoords():生成用于描绘的2D坐标。使用rdDepictor.SetPreferCoordGen(True)有助于实现更一致的分子朝向[^3]。AllChem.Compute2DCoords()是另一种选择[^11]。 针对CNN输入的关键参数和自定义: 图像大小:一致性对CNN输入至关重要。 DEEPScreen使用200x200像素[^12]。 ImageMol默认为224x224像素[^13]。 Chemception通常使用80x80像素[^14]。 RDKit的MolToImage接受一个size元组。MolDraw2DCairo则在初始化时指定宽度和高度。 分辨率和细节: DrawingOptions.dotsPerAngstrom(用于MolToImage)控制像素密度相对于分子大小的比例[^16]。 MolDrawOptions.fixedBondLength可以固定键在图像中的像素长度,以实现一致的缩放[^10]。 原子和键的高亮: highlightAtoms和highlightBonds参数可用于MolToImage以及绘图类的DrawMolecule方法[^4]。 highlightColor(用于MolToImage)或MolDrawOptions.highlightColour设置高亮颜色[^4]。 MolDrawOptions.atomColourPalette或MolDraw2D.DrawMolecule(highlightAtomColors={atom_index: (R,G,B)})允许自定义特定原子的颜色[^7]。 原子和键的颜色: MolDrawOptions.setAtomPalette({atom_index: (R,G,B)})可以设置自定义的原子颜色调色板[^10]。RDKit Cookbook也展示了使用useBWAtomPalette()生成黑白图像的方法[^6]。 图例 (Legends): DrawMolecule中的legend参数或MolsToGridImage中的legends参数可以添加文本注释[^4]。 MolDrawOptions如legendFontSize和legendFraction控制图例外观[^10]。 Python代码片段 (基础 MolToImage): from rdkit import Chem from rdkit.Chem.Draw import MolToImage mol = Chem.MolFromSmiles("CN1C=NC2=C1C(=O)N(C(=O)N2C)C") # Caffeine img = MolToImage(mol, size=(256, 256)) # img.save("caffeine_2d.png") (概念性, 基于[^4]) Python代码片段 (MolDraw2DCairo 带高亮): Python from rdkit import Chem from rdkit.Chem.Draw import rdMolDraw2D from io import BytesIO # 用于在内存中处理图像数据 # from PIL import Image # 用于查看或保存图像 mol = Chem.MolFromSmiles("Cc1ccccc1O") # o-cresol # 高亮甲基所在的子结构 (假设原子0是甲基碳,原子1是与之相连的芳香碳) # 精确的索引取决于SMILES的规范化和原子顺序 # 为了更稳健地高亮,可以使用子结构匹配获取索引 substructure = Chem.MolFromSmarts("c(C)O") # 带有甲基和羟基的芳香碳 match = mol.GetSubstructMatch(substructure) drawer = rdMolDraw2D.MolDraw2DCairo(300, 300) # width, height # drawer.drawOptions().addAtomIndices = True # 可选:添加原子索引 # drawer.drawOptions().setHighlightColour((0.0, 0.0, 1.0, 0.5)) # 蓝色, 0.5透明度 # 自定义原子颜色示例 atom_colors = {} if match: for atom_idx in match: if mol.GetAtomWithIdx(atom_idx).GetSymbol() == 'O': atom_colors[atom_idx] = (1.0, 0.0, 0.0) # 子结构中的氧原子用红色 elif mol.GetAtomWithIdx(atom_idx).GetSymbol() == 'C': atom_colors[atom_idx] = (0.0, 0.0, 1.0) # 子结构中的碳原子用蓝色 drawer.DrawMolecule(mol, highlightAtoms=match, highlightAtomColors=atom_colors, legend="o-cresol with substructure highlight") drawer.FinishDrawing() png_data = drawer.GetDrawingText() # 获取PNG数据 (bytes) # with open("o_cresol_highlighted.png", "wb") as f: # f.write(png_data) # pil_image = Image.open(BytesIO(png_data)) # pil_image.show() (概念性, 基于[^6]) ImageMol实现 官方PyTorch实现托管在GitHub上的HongxinXiang/ImageMol[^13]。用于图像生成的关键脚本包括smiles2img_pretrain.py和dataloader/image_dataloader.py[^13]。 def smiles_to_image(smis, size=224, save_path=None): try: mol = Chem.MolFromSmiles(smis) img = Draw.MolsToGridImage([mol], molsPerRow=1, subImgSize=(size, size)) if save_path is not None: img.save(save_path) return img except: return None 以下是实现这一功能的代码: import os import torch import torchvision.models as models import torchvision.transforms as transforms from rdkit import Chem from rdkit.Chem import Draw import requests from tqdm import tqdm from PIL import Image import tempfile def smiles_or_mol_to_latent(smiles_or_mol, model_name="ResNet18", image_size=224, pretrained_url="https://drive.usercontent.google.com/download?id=1wQfby8JIhgo3DxPvFeHXPc14wS-b4KB5&export=download&authuser=0", cache_dir=None, force_download=False): """ 将 SMILES 字符串或 RDKit Mol 对象转换为 latent feature 参数: smiles_or_mol: SMILES 字符串或 RDKit Mol 对象 model_name: 模型架构名称,默认为 "ResNet18" image_size: 图像大小,默认为 224x224 pretrained_url: 预训练模型的下载链接 cache_dir: 缓存目录,用于存储下载的模型 force_download: 是否强制重新下载模型 返回: latent_feature: 提取的 latent feature,形状为 (batch_size, feature_dim) """ # 确保缓存目录存在 if cache_dir is None: cache_dir = os.path.join(tempfile.gettempdir(), "imagemol_cache") os.makedirs(cache_dir, exist_ok=True) # 定义模型文件路径 model_path = os.path.join(cache_dir, "ImageMol.pth.tar") # 处理输入为 SMILES 字符串的情况 if isinstance(smiles_or_mol, str): mol = Chem.MolFromSmiles(smiles_or_mol) if mol is None: raise ValueError(f"无法解析 SMILES 字符串: {smiles_or_mol}") else: mol = smiles_or_mol # 生成分子图像 img = Draw.MolsToGridImage([mol], molsPerRow=1, subImgSize=(image_size, image_size)) img_path = os.path.join(cache_dir, "temp_molecule.png") img.save(img_path) # 下载预训练模型(如果需要) if force_download or not os.path.exists(model_path): print("开始下载预训练模型...") download_file_from_google_drive(pretrained_url, model_path) print(f"模型已下载到: {model_path}") # 加载模型 model = load_pretrained_model(model_name, image_size=image_size) # 加载预训练权重 try: checkpoint = torch.load(model_path, map_location=torch.device('cpu')) model.load_state_dict(checkpoint['model_state_dict']) print("=> 成功加载预训练权重") except Exception as e: print(f"=> 加载预训练权重失败: {e}") print("尝试直接从 torchvision 加载预训练权重...") model = load_pretrained_model(model_name, image_size=image_size, pretrained=True) # 设置为评估模式 model.eval() # 图像预处理 transform = transforms.Compose([ transforms.Resize((image_size, image_size)), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) # 加载并预处理图像 img = Image.open(img_path).convert('RGB') img_tensor = transform(img).unsqueeze(0) # 获取 latent feature with torch.no_grad(): # 移除最后一层全连接层以获取 latent feature embedding_layer = list(model.children())[:-1] embedding_model = torch.nn.Sequential(*embedding_layer) latent_feature = embedding_model(img_tensor) # 调整形状为 (batch_size, feature_dim) latent_feature = latent_feature.squeeze(-1).squeeze(-1) return latent_feature def load_pretrained_model(model_name="ResNet18", image_size=224, pretrained=False): """加载预训练模型""" if model_name == "ResNet18": model = models.resnet18(pretrained=pretrained) # 修改最后一层以适应任何输出类别数 model.fc = torch.nn.Linear(model.fc.in_features, 2) elif model_name == "ResNet34": model = models.resnet34(pretrained=pretrained) model.fc = torch.nn.Linear(model.fc.in_features, 2) elif model_name == "ResNet50": model = models.resnet50(pretrained=pretrained) model.fc = torch.nn.Linear(model.fc.in_features, 2) else: raise ValueError(f"不支持的模型架构: {model_name}") return model def download_file_from_google_drive(url, destination): """从 Google Drive 下载文件""" # 提取文件 ID file_id = url.split('/')[-2] if 'view' in url else url.split('/')[-1] base_url = 'https://docs.google.com/uc?export=download' session = requests.Session() response = session.get(base_url, params={'id': file_id}, stream=True) # 检查是否需要确认下载 for key, value in response.cookies.items(): if key.startswith('download_warning'): params = {'id': file_id, 'confirm': value} response = session.get(base_url, params=params, stream=True) break # 下载文件 CHUNK_SIZE = 32768 with open(destination, 'wb') as f: with tqdm(unit='B', unit_scale=True, unit_divisor=1024) as bar: for chunk in response.iter_content(CHUNK_SIZE): if chunk: # filter out keep-alive new chunks f.write(chunk) bar.update(len(chunk)) 这个函数的主要功能和特点: 自动处理输入:可以接受 SMILES 字符串或 RDKit Mol 对象作为输入 自动模型下载:首次调用时会自动从 Google Drive 下载预训练模型,并缓存到本地 特征提取:使用预训练模型将分子图像转换为固定维度的 latent feature 缓存机制:避免重复下载模型,提高后续调用效率 错误处理:包含输入验证和错误处理,确保函数健壮性 使用示例: # 从 SMILES 获取 latent feature smiles = "CCO" # 乙醇的 SMILES feature = smiles_or_mol_to_latent(smiles) print(f"特征形状: {feature.shape}") # 从 RDKit Mol 对象获取 latent feature from rdkit import Chem mol = Chem.MolFromSmiles("CCO") feature = smiles_or_mol_to_latent(mol) print(f"特征形状: {feature.shape}") 这个函数默认使用 ResNet18 架构,输出的 latent feature 维度为 512。如果需要其他架构,可以通过 model_name 参数指定。 2. Chemception多通道二维图像 Chemception实现 https://sharifsuliman.medium.com/designing-a-convolutional-neural-network-for-cannabis-machine-learning-part-1-e5a2d8f667af Goh等人的原始工作(2017)[^15]奠定了基础。 一个公开的实现是GitHub上的Abdulk084/Chemception[^1],它使用Keras和TensorFlow。核心逻辑通常在Jupyter笔记本(如chemcemption.ipynb)中找到[^20]。 二维分子成像在CNN应用中的一个重要进展是将显式的化学特征直接编码到图像通道中(例如RGB或RGBA),而不仅仅依赖于视觉结构。这为神经网络提供了更丰富、信息量更大的输入。 Chemception方法: 最初的Chemception论文描述了使用灰度图像,其中原子表示为按原子序数着色的点,键表示为线[^14]。 后续工作,特别是Goh等人的研究(2017年)以及Wildcard Consulting的一篇博客文章详细介绍了一种4通道图像的方法[^18]。这种多通道表示允许CNN“看到”特定位置的化学性质。 chemcepterize_mol(详见[^11] https://github.com/Abdulk084/Chemception/blob/master/chemcemption.ipynb)例证了这一点: 通道0: 编码键级 (例如,单键为1.0,双键为2.0)。 通道1: 编码原子序数。 通道2: 编码原子杂化状态 (例如,sp, sp2, sp3 表示为数值)。 通道3: 编码Gasteiger部分电荷。 图像尺寸通常不大,例如80x80像素[^14]或博客文章示例中的48x48像素[^11]。 def chemcepterize_mol(mol, embed=20.0, res=0.5): dims = int(embed*2/res) #print(dims) #print(mol) #print(",,,,,,,,,,,,,,,,,,,,,,") cmol = Chem.Mol(mol.ToBinary()) #print(cmol) #print(",,,,,,,,,,,,,,,,,,,,,,") cmol.ComputeGasteigerCharges() AllChem.Compute2DCoords(cmol) coords = cmol.GetConformer(0).GetPositions() #print(coords) #print(",,,,,,,,,,,,,,,,,,,,,,") vect = np.zeros((dims,dims,4)) #Bonds first for i,bond in enumerate(mol.GetBonds()): bondorder = bond.GetBondTypeAsDouble() bidx = bond.GetBeginAtomIdx() eidx = bond.GetEndAtomIdx() bcoords = coords[bidx] ecoords = coords[eidx] frac = np.linspace(0,1,int(1/res*2)) # for f in frac: c = (f*bcoords + (1-f)*ecoords) idx = int(round((c[0] + embed)/res)) idy = int(round((c[1]+ embed)/res)) #Save in the vector first channel vect[ idx , idy ,0] = bondorder #Atom Layers for i,atom in enumerate(cmol.GetAtoms()): idx = int(round((coords[i][0] + embed)/res)) idy = int(round((coords[i][1]+ embed)/res)) #Atomic number vect[ idx , idy, 1] = atom.GetAtomicNum() #Gasteiger Charges charge = atom.GetProp("_GasteigerCharge") vect[ idx , idy, 3] = charge #Hybridization hyptype = atom.GetHybridization().real vect[ idx , idy, 2] = hyptype return vect 输出与可视化 v = chemcepterize_mol(mol, embed=10, res=0.2) print(v.shape) # 输出:(100, 100, 4)(假设embed=10,res=0.2时dims=100) plt.imshow(v[:,:,:3]) # 可视化前3个通道(模拟RGB图像) 输出的vect是一个3 维数组,形状为(dims, dims, 4),可直接作为 CNN 的输入(类似图像的(H, W, C)格式)。 imshow(v[:,:,:3])将前 3 个通道视为 RGB 通道进行可视化,实际每个通道代表不同的化学属性,而非颜色。 KekuleScope https://github.com/isidroc/kekulescope 代码可在GitHub上的isidroc/kekulescope找到[^1]。它包括Python脚本如Kekulescope.py和load_images.py,并利用PyTorch框架[^22]。 分子转图片的代码主要来自于 kekulescope/Kekulescope.py 文件。下面是将分子转换为图片的核心代码片段,我们将其提取并进行适当修改,使其成为一个独立可用的代码片段: import os import sys from rdkit import Chem from rdkit.Chem import Draw import glob # 定义函数来生成分子图片 def generate_molecule_images(cell_line, seed, smiles_list, chembl_ids, dataset_type): base_dir = f'./images/{cell_line}/{seed}/{dataset_type}/images' os.makedirs(base_dir, exist_ok=True) svgs = glob.glob(f"{base_dir}/*svg") pngs = glob.glob(f"{base_dir}/*png") if len(svgs) == 0 and len(pngs) == 0: for i, smiles in enumerate(smiles_list): mol = Chem.MolFromSmiles(smiles) if mol is not None: svg_img = Draw.MolsToGridImage([mol], molsPerRow=1, useSVG=True) with open(f'{base_dir}/{chembl_ids[i]}.svg', 'w') as f: f.write(svg_img.data) else: print(f"SVGs ready for {dataset_type}") # 将 SVG 转换为 PNG pngs = glob.glob(f"{base_dir}/*png") if len(pngs) == 0: basedir = os.getcwd() os.chdir(base_dir) cmd = "AA=($( find . -name '*.svg' ));for i in ${AA[*]}; do convert -density 800 ${i} -resize 300x ${i}.png ; done" os.system(cmd) cmd = "rm -rf *.svg" os.system(cmd) os.chdir(basedir) # 示例使用 if __name__ == "__main__": cell_line = "KB" seed = 1 # 这里需要替换为实际的 SMILES 列表和 ChEMBL ID 列表 my_smiles = ["CCO", "CCOC"] chembl_ids = ["CHEMBL1", "CHEMBL2"] # 生成训练集图片 generate_molecule_images(cell_line, seed, my_smiles, chembl_ids, "train") # 生成验证集图片 generate_molecule_images(cell_line, seed, my_smiles, chembl_ids, "val") # 生成测试集图片 generate_molecule_images(cell_line, seed, my_smiles, chembl_ids, "test") 代码说明 函数 generate_molecule_images:该函数接受细胞系名称、随机种子、SMILES 列表、ChEMBL ID 列表和数据集类型(train、val 或 test)作为输入。它首先检查目标目录下是否已经存在 SVG 或 PNG 文件,如果不存在,则生成 SVG 图片;然后将 SVG 图片转换为 PNG 图片,并删除 SVG 文件。 KekuleScope: 采用“凯库勒结构表示”作为CNN的输入[^1]。相关的GitHub仓库isidroc/kekulescope包含一个load_images.py脚本,推测用于处理图像生成或加载,并利用了RDKit[^1]。 DEEPScreen https://github.com/cansyl/DEEPScreen 主要通过 rdkit 库将 SMILES 字符串转换为分子对象,然后使用 rdkit 的绘图功能将分子绘制为 SVG 图像,再使用 cairosvg 将 SVG 图像转换为 PNG 图像,最后删除临时的 SVG 文件。 import os import subprocess from rdkit import Chem from rdkit.Chem import Draw from rdkit.Chem.Draw import DrawingOptions import cairosvg # 假设训练文件路径 training_files_path = "/path/to/training_files" IMG_SIZE = 200 def save_comp_imgs_from_smiles(tar_id, comp_id, smiles): """ 将分子的 SMILES 表示转换为图片 :param tar_id: 目标 ID :param comp_id: 化合物 ID :param smiles: 分子的 SMILES 字符串 """ # 创建分子对象 mol = Chem.MolFromSmiles(smiles) # 设置绘图选项 DrawingOptions.atomLabelFontSize = 55 DrawingOptions.dotsPerAngstrom = 100 DrawingOptions.bondLineWidth = 1.5 # 绘制分子为 SVG 图像 svg_path = os.path.join(training_files_path, "target_training_datasets", tar_id, "imgs", "{}.svg".format(comp_id)) Draw.MolToFile(mol, svg_path, size=(IMG_SIZE, IMG_SIZE)) # 将 SVG 图像转换为 PNG 图像 png_path = os.path.join(training_files_path, "target_training_datasets", tar_id, "imgs", "{}.png".format(comp_id)) cairosvg.svg2png(url=svg_path, write_to=png_path) # 删除临时的 SVG 文件 subprocess.call(["rm", svg_path]) # 示例使用 tar_id = "example_target" comp_id = "example_compound" smiles = "CCO" # 示例 SMILES 字符串 # 创建必要的目录 target_dir = os.path.join(training_files_path, "target_training_datasets", tar_id, "imgs") os.makedirs(target_dir, exist_ok=True) # 调用函数生成图片 save_comp_imgs_from_smiles(tar_id, comp_id, smiles) 代码说明 文件来源:此代码片段来自 bin/data_processing.py 文件。 依赖安装:需要安装 rdkit 和 cairosvg 库,可以使用以下命令进行安装 DEEPScreen: 使用通过RDKit从SMILES生成的二维结构表示(200x200像素)。值得注意的是,由于SMILES表示的局限性,手性信息被省略了,而非图像生成过程本身的问题[^12]。 3. 其他工具中的特定二维图像生成 其他一些工具和研究也利用二维图像,通常以RDKit作为生成引擎,没见代码: Toxic Colors: 使用2DConvNet处理“化学品的简单二维绘图”或“简易二维草图”[^1]。具体的生成细节可能在其补充材料中[^23]。https://pubs.acs.org/doi/full/10.1021/acs.jcim.8b00338 用的是MOE ADMET-CNN: 一种基于分子二维图像的CNN,用于预测ADMET性质[^1]。https://www.sciencedirect.com/science/article/pii/S0169743919303417?via%3Dihub#sec5 RDKit QSAR-CNN (Zhong et al., 2021): 利用分子图像进行QSAR建模,特别是用于预测污染物的反应性[^1]。https://www.sciencedirect.com/science/article/pii/S1385894720341176 RDKit InterpretableDTIP (Gao et al., 2018) and CPI-GNN (Tsubaki et al., 2019; Chen et al., 2020) first convert the SMILES sequences into molecular graph with the Rdkit 从简单的二维草图到标准化的RDKit描绘,再到富含化学特征的多通道图像的演变,反映了为CNN提供更直接可用和信息更丰富的输入的持续努力。这旨在减轻网络学习基本化学特征的负担,从而可能带来性能或数据效率的提升。 B. 基于二维图像的CNN架构与应用 标准的CNN架构,包括AlexNet、VGG、ResNet、DenseNet和基于Inception的模型,经常被调整或用作处理二维分子图像的基础骨干网络[^1]。这些网络通常包含用于层次化特征提取的卷积层、用于降维和实现平移不变性的池化层,以及用于将学习到的特征映射到输出预测的全连接层[^1]。 应用领域: 生物活性和性质预测: 这是一个主要的应用领域。KekuleScope预测癌细胞系的敏感性和化合物效价[^21]。Chemception已应用于预测毒性、生化活性和溶解性质[^14]。ImageMol专注于预测一系列分子性质和药物靶点[^13]。ADMET-CNN专为ADMET性质预测而设计[^25],QSAR-CNN模型用于预测污染物反应性等任务[^33]。 毒性预测: Toxic Colors利用二维图像进行Tox21基准测试预测[^23]。Deepsnap虽然常与三维输入相关联,但在毒性预测的背景下也被引用,其中可能使用二维图像[^1]。ResNet18DNN被引用用于预测药物引起的肝损伤(DILI)[^1]。BESTox从其SMILES衍生的二元矩阵预测急性口服毒性[^37]。 药物-靶点相互作用 (DTI): DEEPScreen是一个显著的例子,使用二维结构图像预测DTI[^12]。 具体模型示例: KekuleScope: 扩展了成熟的架构,如AlexNet、DenseNet-201、ResNet152和VGG-19,通常利用在通用图像数据集(如ImageNet)上预训练的权重作为一种迁移学习形式[^1]。 Chemception: 受Google的Inception-ResNet架构启发,证明了当使用基于图像的输入时,最少的显式化学知识也能产生有竞争力的结果[^14]。 ImageMol: 采用自监督图像表征学习框架。其预训练脚本提到了ResNet18,表明可能使用ResNet骨干网络从大量未标记的分子图像中学习[^13]。 ResNet18DNN: 特别使用一个18层的残差神经网络(ResNet18)结合深度神经网络进行DILI预测[^1]。综述[^1]将其归类为基于图像的方法,尽管一些使用CNN进行DILI预测的具体研究也采用了指纹输入[^40]。 使用标准化的图像尺寸和朝向,如DEEPScreen[^12]所示,对CNN至关重要,因为CNN对输入变化敏感。如果同一个分子可以有多种描绘方式,网络可能会学到虚假的关联。像Chemception这样的多通道方法试图以结构化的方式增加特征丰富度,这在一定程度上独立于确切的二维布局。此外,将CNN应用于SMILES字符串的二维矩阵表示(例如,Hirohara M. et al.[^36], BESTox[^37])表明,“基于图像”有时可以指CNN在二维张量输入上的维度和局部模式学习能力,而不仅仅是其视觉来源。 RDKit和Python的广泛可用性,加上成熟的深度学习框架,使得基于二维图像的方法相对容易获取。然而,优化描绘参数和设计有效的多通道表示(如Chemception所示)仍然需要相当的领域专业知识,以确保呈现给CNN的视觉特征是有意义的,并且有助于学习相关的结构-性质关系。 还有并非分子图像的 Hirohara M. et al.: 这种方法略有不同,它将SMILES字符串转换为“SMILES特征矩阵”(例如,一个400x42的矩阵)。虽然不是视觉图像,但这个二维矩阵由CNN处理,展示了CNN在结构化二维序列表示上的应用[^36]。 BESTox: 类似地,此方法使用从SMILES派生的“二维二元矩阵”,编码了原子类型、键合氢数量、电荷、化合价等特征。这个矩阵(而非视觉描绘)作为CNN输入[^1]。 tCNNs (Liu et al.): 该模型通过将SMILES字符串转换为one-hot编码矩阵来处理它们。然后将一维CNN应用于药物的矩阵表示[^41]。虽然输入是从序列派生的矩阵,但其二维结构和CNN的处理方式使其处于一种模糊了纯序列和类图像表示界限的类别,正如其被包含在基于图像的综述中一样[^1]。 III. 三维(3D)分子表征 虽然二维图像提供了简单性,但它们固有地丢失了显式的三维结构信息,而这些信息对于理解分子相互作用(尤其是在药物-靶点结合中)通常至关重要。为了解决这个问题,已经开发了各种三维表征策略,范围从三维构象的二维快照集合到用于专门CNN和几何深度学习(GDL)模型的直接体素化或基于表面的输入。 A. 三维分子表征的生成 1. 源自构象异构体的三维快照图像 这种方法试图通过从不同视角捕捉分子三维构象的多个二维投影图像,从而为主要是二维的CNN提供三维信息。 Maestro (Schrödinger) 方法: 这个商业软件包可用于导入三维构象(例如,从SDF文件)。一种常用技术是在固定角度增量(例如,8次旋转,每次45°)下围绕特定轴(例如y轴)全局旋转构象。每次旋转后,保存三维模型的当前二维视图为图像。重要的是,这些用于可视化的全局旋转不改变分子的潜在三维坐标[^1]。 应用示例: Asilar等人(2020)在其“基于图像的CNN”工作中应用此技术预测肝毒性。从Maestro生成的图像通常用不同颜色描绘原子,用管状表示键,传达基本的化学和结构信息[^1]。 代码: Maestro允许使用Python脚本自动化此类工作流程。GitHub仓库https://github.com/maestro-project/maestro[^1]似乎是一个独立的项目,并非官方的Schrödinger Maestro软件。 Deepsnap (Uesawa Y., Matsuzaka Y.) 方法: 这种新颖的分子图像输入技术是为QSAR分析而开发的。它从三维化学结构生成图像,提供用户可调参数,如原子属性(可能影响描绘)、原子颜色、键半径和像素大小。一个关键方面是从多个视角捕捉图像,这有助于揭示关键的致毒构象或药理学相关的结构域[^1]。 Uesawa Y.(2018)特别描述了“Deep Snap”过程:使用CORINA Classic软件从SMILES生成三维结构并保存为SDF,然后使用Jmol将其可视化为球棍模型。这些模型随后围绕X、Y和Z轴系统地旋转360°,并以定义的增量捕捉快照(例如,每个轴向8张图像,45°增量,每个分子产生512张图像)。这些图像通常保存为256x256像素的PNG文件[^54]。由此产生的图像集用于训练AlexNet CNN模型。 代码: 综述中引用的GitHub链接snap-stanford/deepsnap[^1]涉及一个用于图深度学习的Python库,似乎与Uesawa和Matsuzaka开发的Deepsnap QSAR图像方法不同[^55]。图像方法的相关引文是Matsuzaka Y, Uesawa Y. “Optimization of a deep-learning method based on the classification of images generated by parameterized deep snap…”[^1]。 我怎么看还有MOE RDKit用于从3D生成多视角2D投影 RDKit的MolDraw3D模块主要用于创建交互式3D可视化或静态3D透视图像,而不是一系列适用于CNN序列输入的、从系统变化的视点生成的2D投影[^56]。虽然理论上可以编写RDKit脚本来旋转三维构象的坐标,然后为每个旋转状态生成标准的2D描绘,但这并非内置的高级功能,需要自定义实现。像PyMOL这样的工具更常用于生成此类多帧旋转序列(如VideoMol所示)。 2. 基于三维体素的表征 (网格) 体素化涉及将分子或蛋白质-配体复合物占据的三维空间离散化为一个规则的体积元素(体素)网格。每个体素随后可以存储代表原子存在、原子类型或其他理化性质的标量或矢量值,通常形成多个通道。这种三维“图像”直接适用于三维CNN。 一般过程:该过程通常包括定义一个边界框,设置网格分辨率(体素大小),将分子放置在此网格内,然后根据落入或靠近每个体素的原子为其分配特征值。 工具和方法: AtomNet (Wallach et al., 2015) 和 Ragoza et al. (2017) AtomNet是基于结构的生物活性预测的开创性深度CNN,利用蛋白质-配体复合物的三维网格表示[^60]。输入生成涉及将配体置于网格盒中心,并将原子类型和位置特征化为体素通道[^62]。 Ragoza等人(用户查询中提到“voxelization, smina atom types”)及相关工作如CENsible研究[^63]描述了使用libmolgrid对蛋白质-配体复合物进行体素化。例如,使用的参数包括0.5 Å的分辨率,48x48x48的网格,以及28种原子类型(可能是类smina或类AutoDock的原子类型)。 DeepSite (Jimenez et al.) 一种基于三维CNN的方法,用于预测蛋白质上的配体结合位点[^65]。 它将蛋白质结构表示为离散化为1x1x1 ų体素的三维图像。网格包含蛋白质的边界框外加8 Å的缓冲层以捕捉表面口袋[^66]。 一个关键特征是其使用8个通道表示体素占据情况,编码不同的原子特性:疏水性、芳香性、氢键受体、氢键供体、正离子化、负离子化、金属性以及一个通用的排除体积通道。这些特性源自AutoDock 4的原子类型[^66]。 DeepSite网络服务器位于 www.playmolecule.org[^70]。 KDEEP 和 Ligdream : 这些工具在用户查询中被提及并在综述中列出[^1],据称重用或类似于DeepSite的体素化方法。例如,KDEEP也采用三维网格表示[^61]。 Pafnucy (Stepniewska-Dziubinska et al.) : 使用三维CNN预测蛋白质-配体结合亲和力[^61]。 输入是一个以配体几何中心为中心的20 Å立方体盒子,离散化为1 Å分辨率的网格。这形成一个4D张量,最后一个维度包含每个网格点的19个原子特征[^72]:9位用于原子类型(B, C, N, O, P, S, Se, 卤素, 金属);1个整数表示杂化状态;1个整数表示重原子价;1个整数表示杂原子价;5位用于SMARTS定义的属性(疏水性、芳香性、受体、供体、环);1个浮点数表示部分电荷;1个整数区分配体(1)和蛋白质(-1)。如果多个原子占据单个体素,则其特征相加[^76]。 代码和使用说明可在 http://gitlab.com/cheminfIBB/pafnucy 获取[^76]。 Kuzminykh D. et al. (2018) : 这项工作直接解决了朴素体素表示中极端稀疏性的问题。他们提出了一种基于小波变换的新颖平滑方法,通过将初始离散表示与小波核进行卷积,原子被有效地“扩展”以填充附近的体素[^1]。 这种小波变换方法与高斯平滑(模糊)进行了比较。作者认为,与高斯核的简单指数衰减相比,小波变换导致的信息损失更少,并且来自不同原子的波之间的干涉能够更好地传播信息[^78]。 输入生成包括获取三维构象(例如,通过PCA定向从SMILES生成),将空间离散化为网格(例如,0.5 Å分辨率),并用原子类型(例如,对常见元素H, C, N, O, F, S使用6-9个通道的one-hot编码)表示每个单元格中的原子[^78]。 体素化的Python库: libmolgrid: 一个通用的C++/CUDA库,带有Python绑定,专为机器学习创建体素化分子数据而设计。它支持各种原子类型方案(例如,XS原子类型、元素类型、自定义回调),可以处理多个坐标集(例如,受体和配体),并包含用于高效批量采样ExampleProvider和用于生成网格张量的GridMaker。它针对GPU加速进行了优化[^63]。代码位于GitHub上的gnina/libmolgrid。 DeepChem : RdkitGridFeaturizer: 位于deepchem/feat/complex_featurizers/rdkit_grid_featurizer.py,此特征化器专为蛋白质-配体复合物设计。它创建一个以配体为中心的网格,并可以将各种特征类型编码到体素通道中,例如ECFP、SPLIF、Sybyl原子类型、电荷、氢键势、π-堆积和阳离子-π相互作用。参数包括box_width、voxel_width、feature_types和用于通过旋转复合物进行数据增强的nb_rotations[^85]。 虽然用户查询中提到了通用的VoxelFeaturizer,但在提供的材料中,RdkitGridFeaturizer更具体地记录了用于创建三维网格。DeepChem提供了一套广泛的特征化器[^87]。 代码: GitHub上的deepchem/deepchem[^86]。 MolVoxel: (SeonghwanSeo/molvoxel) 一个易于使用的Python分子体素化工具,依赖项极少(NumPy、SciPy,可选Numba、PyTorch/CUDA、RDKit、PyMOL)。它以原子坐标、半径和特征作为输入。参数包括分辨率(默认0.5)、维度(默认64)、密度类型(‘gaussian’或‘binary’)和sigma(用于高斯核,默认0.5)[^89]。 NEARL: (miemiemmmm/Nearl) 一个自动化的Python流程,旨在从分子动力学(MD)轨迹的大量系综中提取动态特征,重点是用于三维CNN的三维体素表示。一个示例将特定残基附近的子结构的质量分布特征化为一个32x32x32的网格[^90]。 体素网格中的稀疏性问题是一个重要的考虑因素。如果原子在大型三维网格中表示为单个点,则大多数体素将保持为空,导致计算效率低下,并可能妨碍三维CNN的学习过程。像Kuzminykh的小波变换、高斯模糊或将网格聚焦于感兴趣区域(例如,配体或结合位点周围)等技术对于创建更密集、信息更丰富的表示至关重要。 3. 基于三维表面的表征 这些方法通过分子的三维表面(特别是蛋白质)来表示分子,并将理化或几何特征编码到这些表面上。然后,几何深度学习模型可以在这些表面网格或从它们派生的面片上操作。 MaSIF (Molecular Surface Interaction Fingerprints) (Gainza et al.) : 方法 MaSIF是一种著名的方法,它处理蛋白质表面以解读对生物分子相互作用重要的模式[^1]。 表面生成: 它计算分子表面(使用MSMS计算溶剂排除表面)并将其离散化为网格。 特征分配: 将几何特征(例如,形状指数、距离依赖曲率)和化学特征(例如,氢键供体/受体势、通过APBS计算的静电势,以及通过PDB2PQR原子参数计算的疏水性)分配给网格的每个顶点。 面片提取: 在每个顶点周围提取具有固定测地线半径(例如9 Å或12 Å)的重叠径向面片。 指纹计算: 一个利用测地线卷积的几何深度神经网络处理这些面片,为每个表面点计算一个描述符(指纹)。 Python/脚本流程: MaSIF采用一个复杂的流程,涉及多个外部工具和Python库:reduce(用于PDB结构质子化)、MSMS(用于分子表面三角化)、BioPython(用于解析PDB文件)、PyMesh(用于处理.ply表面文件、属性和网格正则化)、PDB2PQR和APBS(用于计算泊松-玻尔兹曼静电势以导出电荷特征)、open3D(用于RANSAC对齐等任务)以及Tensorflow(作为深度学习框架)[^92]。 代码: MaSIF框架可在GitHub上的LPDI-EPFL/masif获取[^1]。data_preparation目录包含协调这些步骤的脚本(例如data_prepare_one.sh)。 PINet (Protein Interface Network) (Gainza et al., 2020) : 方法: PINet是一个几何深度神经网络,旨在预测蛋白质相互作用界面区域。它以编码两个伴侣蛋白结构的点云对作为输入[^98]。 该模型学习捕捉几何和理化分子表面的互补性,以预测相互作用区域[^99]提到PINet在点云上使用PointNet。 综述[^1]将PINet列在MaSIF下,表明它们在表面/点云上的几何深度学习方面存在概念联系或共享基础。 4. 三维点云表征 这种方法直接将分子表示为三维空间中的一组点(通常是原子),其中每个点都与一个特征向量(例如,坐标、原子类型、电荷)相关联。然后使用像PointNet这样的网络或专门的图神经网络来处理这个无序点集。 Wang Y. et al. (Briefings in Bioinformatics 2022, “A Point Cloud-Based Deep Learning Strategy for Protein-Ligand Binding Affinity Prediction”) : 方法: 这项工作将PointNet和PointTransformer架构直接应用于从蛋白质-配体复合物派生的三维点云,用于结合亲和力预测[^101]。 点云生成 : 对蛋白质-配体复合物(来自PDBbind)进行预处理(去除溶剂/金属/离子)。 坐标对齐到配体的中心以减轻平移方差。 选择距离配体中心最近的1024个原子。 每个原子(点)由6个特征描述:x, y, z坐标、范德华半径、原子量和一个来源标识符(蛋白质为1,配体为-1)。 特征进行归一化。如果原子少于1024个,则用零特征点填充该集合。 工具: 使用Python和OpenBabel进行初始点云生成,并使用C++加速此预处理步骤[^106]。 PGpocket (Zhao, He, Wang et al., 2024) : 尽管是另一个“Wang et al.”团队的不同工作,PGpocket也使用点云。它将蛋白质表面抽象为一个点云,为每个点提取几何和化学特征,然后构建一个点云图。随后应用GNN来预测结合位点[^102]。这说明了点云GNN在结构生物信息学中日益增长的兴趣。 三维表征的选择——无论是快照、体素、表面还是点云——反映了在信息内容、计算可行性以及与各种神经网络架构的兼容性之间进行权衡的不同策略。虽然提供了更丰富的空间信息,但与二维方法相比,这些方法通常伴随着更高的计算成本和数据准备复杂性。特征工程也仍然至关重要,无论是在定义体素通道内容,还是在将化学和几何特性映射到表面或点上。 B. 基于三维表征的CNN架构与应用 CNN架构的选择与所使用的三维表征类型密切相关。 对于三维体素网格: 标准的三维CNN是自然的选择。它们将二维CNN的原理扩展到三维卷积滤波器、三维池化层和全连接层。例如DeepSite、Pafnucy和AtomNet,它们使用此类架构从蛋白质-配体复合物或蛋白质结合位点的体素化表示中学习特征。 对于三维表面和网格: 采用几何深度学习(GDL)模型。例如,MaSIF使用测地线卷积,这种卷积专门设计用于在曲面和网格上操作,通过在局部表面面片上定义类似卷积的操作来实现[^92]。 对于三维点云: 使用专门的GDL架构,如PointNet[^106]和PointTransformer[^106]。这些网络旨在处理三维空间中的无序点集,学习对输入点排列不变的特征。适用于点云的GNN(如PGpocket[^102])也很常见。PINet也利用了点云处理[^99]。 应用领域: 结合亲和力预测: 一个主要应用,工具如Pafnucy[^71]、AtomNet[^60]、Ragoza等人的方法[^63]以及Wang Y.等人的PointNet/PointTransformer方法[^106]旨在预测蛋白质-配体相互作用的强度。 结合位点预测: 识别配体或其他分子可能在蛋白质表面结合的位置。例如DeepSite[^66]、KDEEP、Ligdream和MaSIF-site[^92]。 QSAR、毒性和一般性质预测: Deepsnap使用三维快照图像,应用于QSAR和毒性预测[^1]。 一般药物发现和筛选: 许多三维方法通过提供结构见解,为虚拟筛选和识别新型候选药物的更广泛目标做出贡献。 C. 三维方法的Python包和代码实现 三维分子图像生成和处理流程涉及多种Python包和外部软件。 构象生成 : RDKit: 广泛用于从SMILES或二维结构生成三维构象,常采用ETKDG(基于实验扭转角的知识距离几何)等算法[^3]。 CORINA Classic: 一种用于从二维结构或SMILES生成单个低能三维构象的软件,在DeepSnap工作流程中使用[^53]。 可视化和快照生成 : Maestro (Schrödinger): 用于分子建模和可视化的商业软件,用于生成三维构象的多角度二维快照[^1]。 PyMOL: 一个开源的分子可视化系统,可通过Python高度脚本化。VideoMol使用它将旋转的构象渲染成帧[^107]。 Jmol: 一个用于三维化学结构的开源Java查看器,在最初的DeepSnap (Uesawa) 方法中用于可视化和捕获旋转的模型[^54]。 体素化工具 : libmolgrid: (gnina/libmolgrid on GitHub) 一个C++/CUDA库,带有Python绑定,用于创建体素化的分子数据,支持各种原子类型方案和GPU加速。关键类包括ExampleProvider, GridMaker和AtomTyper[^63]。 DeepChem: (deepchem/deepchem on GitHub) 提供RdkitGridFeaturizer,用于将蛋白质-配体复合物特征化为三维网格,具有可定制的特征和数据增强选项[^85]。 MolVoxel: (SeonghwanSeo/molvoxel on GitHub) 一个Python分子体素化工具,支持不同的密度类型和计算后端(NumPy, Numba, PyTorch/CUDA)[^89]。 NEARL: (miemiemmmm/Nearl on GitHub) 一个Python流程,专注于从MD轨迹中提取动态特征到三维体素表示,用于三维CNN[^90]。 表面处理工具 (主要用于MaSIF) : MSMS: 用于计算溶剂排除表面(三角化网格)的外部命令行工具[^92]。 PyMesh: 用于处理和正则化表面网格的Python库[^92]。 APBS (Adaptive Poisson-Boltzmann Solver): 用于计算分子表面静电势的外部工具[^92]。 PDB2PQR: 用于通过分配电荷和半径来准备APBS计算的蛋白质结构的外部工具[^92]。 reduce: 为PDB结构添加氢原子[^92]。 点云处理 : OpenBabel: 可用于生成点云数据的预处理步骤,如Wang Y.等人的工作所示[^106]。 深度学习框架 : TensorFlow: MaSIF[^92]和Pafnucy(Keras API)[^76]使用。 PyTorch: 日益普及,ImageMol[^13]和KekuleScope[^22](尽管主要用于二维模型)使用。许多现代GDL库也基于PyTorch(例如,PyTorch Geometric,DeepChem与之集成[^55])。 三维表示的多样性——快照、体素、表面和点云——反映了为机器学习寻找编码复杂三维分子信息的最佳方式的持续努力。每种方法都在信息密度、计算成本以及它们最适合的神经网络架构类型之间呈现出一组独特的权衡。虽然三维方法具有捕捉二维中经常丢失的关键空间细节的潜力,但它们通常需要比二维方法更多的计算资源,并依赖于高质量三维结构数据的可用性,例如蛋白质数据库(PDB)中的数据。 IV. 分子序列和视频表征 除了静态的二维和三维图像,一些新兴方法试图捕捉分子的动态方面,或以类图像格式利用基于序列的信息供CNN处理。 A. 分子视频/序列的生成 1. 分子视频 (例如 VideoMol) 分子视频的概念旨在将分子的构象灵活性或动态特性表示为一个图像帧序列,从而提供比单个静态构象更丰富的输入。 VideoMol (Zeng, Xiang et al.) 这是一个基于分子视频的基础模型的显著例子[^107]。 方法论 : 构象生成: 该过程从生成三维构象开始。对于其预训练数据集,VideoMol利用了PCQM4Mv2数据库中的构象。对于下游任务中可能不易获得构象的情况,他们采用RDKit的MMFFOptimizeMolecule()函数和MMFF94力场来生成构象[^107]。 旋转和快照生成: 每个三维构象围绕正X、Y和Z轴进行系统的逆时针旋转。此过程为每个分子生成 $n_f=60$ 个快照(帧)。旋转角度由一个旋转矩阵 $R_z(\phi)$ 形式化,其中 $\phi = \pi/10$[^107]。 渲染: 这60个快照中的每一个都使用PyMOL渲染成分子帧,尺寸为224x224像素。使用特定的PyMOL命令确保描绘风格的一致性,例如 bg_color white; hide (hydro); set stick_ball,on; set stick_ball_ratio,3.5; set stick_radius,0.15; set sphere_scale,0.2; set valence,1; set valence_mode,0; set valence_size, 0.1[^107]。PyMOL最初生成640x480的帧,然后进行后处理(填充和调整大小)到最终的224x224尺寸[^107]。 视频拼接: 然后将60个渲染帧按顺序拼接在一起,形成最终的分子视频 $V = {v_1, v_2, …, v_{n_f}}$,其中每个 $v_i \in \mathbb{R}^{3 \times 224 \times 224}$ (假设为3个颜色通道)[^107]。 Python包/脚本 : RDKit: 用于三维构象生成(如果尚未提供)[^107]。 PyMOL: 用于将旋转的构象渲染成单独的图像帧。PyMOL可通过Python高度脚本化,从而自动化旋转和帧保存过程。PyMOL命令如mset(定义电影帧/长度)、rotate(或手动旋转后使用mview store)和mpng(将帧保存为PNG)是此类工作流程的基础[^109]。 2. 基于SMILES的序列/矩阵表示 (再访) 虽然在二维部分已讨论过,但有必要重申,一些方法以一种虽然在视觉上不是图像,但结果是适用于CNN的二维矩阵的方式处理SMILES字符串,从而以“类图像”的方式处理序列。 Hirohara M. et al.: 将SMILES字符串转换为“SMILES特征矩阵”(例如,固定大小如400x42),其中行可能表示字符位置,列表示one-hot编码的字符或派生特征。然后将此矩阵输入到二维CNN[^36]。 BESTox: 将SMILES转换为“二维二元矩阵”,编码了原子类型、键合氢数量、电荷、化合价、环信息、芳香性、手性和杂化状态等在SMILES字符串上的出现情况。此矩阵作为CNN输入[^1]。 MolPMoFiT (Li, Fourches): 此方法虽然在综述[^1]中列于自监督学习下,但主要在标记化的SMILES序列(原子级或SMILES对编码 - SPE)上使用NLP启发的架构(ULMFiT改编)[^119]。它更像是一种序列建模方法,而不是视觉意义上的基于图像的方法。 B. 基于视频/序列数据的CNN架构与应用 VideoMol : 其架构可能涉及为视频处理设计的CNN。这些可以包括将第三维处理时间序列帧的三维CNN,或混合架构如CNN-LSTM,其中CNN从每个帧中提取空间特征,而LSTM对跨帧的时间依赖性进行建模。VideoMol论文提到使用“视频编码器”提取潜在特征,并实施自监督预训练策略,通过考虑构象动态变化和理化信息来优化这些表示[^113]。 应用: 预测分子靶点和性质,识别抗病毒分子。一个关键目标是有效地理解和利用分子的三维结构动力学[^107]。 SMILES矩阵方法 (Hirohara, BESTox) : 这些通常采用标准的二维CNN。卷积滤波器从SMILES字符串的二维矩阵表示中学习局部模式,这些模式可能对应于化学基序或特征之间的顺序关系[^36]。 MolPMoFiT : 使用Transformer或类似LSTM的架构,这些是NLP中用于序列建模的标准架构,而不是在视觉图像或类图像矩阵上操作的CNN[^119]。 C. Python包和代码实现 VideoMol : 利用RDKit进行构象生成,PyMOL(可通过Python脚本化)将旋转的构象渲染成帧[^107]。在提供的摘要中未提供完整的VideoMol框架本身的公开GitHub链接。 Hirohara M. et al. : 其基于SMILES的CNN的源代码,用Chainer深度学习框架实现,据称可在 http://www.dna.bio.keio.ac.jp/smiles/ 获取[^123]。 BESTox : 摘要中未提供明确的公开代码链接[^37]。 MolPMoFiT : 实现可在GitHub上的XinhaoLi74/MolPMoFiT获取[^119]。它使用PyTorch和Fastai库[^119]。 像VideoMol这样的分子视频的引入标志着朝着捕捉分子动力学迈出了重要一步,这些动力学通常对理解生物活性至关重要,但在静态二维或单构象三维图像中会丢失。这种方法允许模型从更丰富、时间分辨的分子结构表示中学习。然而,此类视频数据(例如VideoMol中每个分子60帧)的生成和处理计算量大,可能限制了它们目前与静态图像方法相比的广泛采用。将CNN应用于SMILES字符串的矩阵表示也展示了这些网络超越纯视觉数据的多功能性,突出了如果顺序信息可以结构化为局部模式有意义的二维网格,CNN就可以有效地应用。 V. 多模态及其他相关方法 为了进一步增强分子系统的预测能力和理解,研究人员越来越多地探索多模态学习、迁移学习和自监督/无监督学习范式,通常将基于图像的表示与其他数据类型集成或利用大型未标记数据集。 A. 多模态学习方法 多模态学习旨在同时从多种类型的数据(如图像、文本和图)中学习,以构建更全面、更准确的模型[^1]。基本前提是不同的模态捕获关于分子的互补信息,它们的融合可以导致模型性能的协同改进。 Multi-modal (Wang et al. in [^1]) : 方法: 该系统专注于通过处理从化学专利中提取的文本描述和结构图像来进行化学信息重建。它采用双分支模型架构:一个分支使用CNN进行图像处理,另一个分支使用BiLSTM+CRF进行文本处理。输出被对齐以识别异构化学实体及其关系[^1]。 应用: 主要用于通过理解和链接来自不同专利数据源的信息来生成大规模的近药物化合物库。 MCNN-DDI (Asfand-E-Yar M. et al., 2024) : 方法: 一种为预测药物间相互作用(DDI)相关事件而设计的多模态CNN。它利用四个不同的CNN子模型,每个子模型专用于所涉及药物的特定特征类型:化学子结构(表示为从SMILES派生的相似性矩阵,而非直接的视觉图像)、酶、通路和药物靶点。然后组合这些子模型的输出以进行最终的DDI事件预测[^1]。 代码: 虽然论文发表在Scientific Reports[^125],但摘要中未提供直接的公开代码链接。 MultiDTI (Zhou et al.) : 方法: 该模型通过采用在异构网络上操作的联合学习框架来预测药物-靶点相互作用。它整合了来自这些网络的相互作用或关联信息以及药物和靶点的序列信息。一个关键方面是它能够将药物、靶点、副作用和疾病节点映射到一个共同的潜空间中。这使得MultiDTI能够通过基于其化学结构将其映射到这个学习到的空间中来预测新化学实体的相互作用[^1]。 代码: 可在GitHub上的Deshan-Zhou/MultiDTI获取[^1]。 ISMol (Zhang, Xiang et al., 2024) : 方法: ISMol代表基于图像和序列的双视角学习用于分子性质预测。它利用交叉注意力机制来有效融合从分子的两个不同视角提取的信息:其二维图像和其SMILES字符串表示[^128]。 代码: 论文和代码的链接可在GitHub仓库Shihang-Wang-58/papers_for_molecular_representation中找到[^128]。 CGIP (Wang et al., 2023) : 方法: CGIP,即对比图文预训练(Contrastive Graph-Image Pre-training),是一个用于分子表征学习的框架。它旨在将化学知识从分子图(显式编码连接性)迁移到分子图像(隐式编码结构)。这是通过在大量未标记分子上精心设计的模态内和模态间对比学习目标来实现的[^128]。 代码: 论文和代码的链接可在Shihang-Wang-58/papers_for_molecular_representation中找到[^128]。 越来越多地采用多模态方法反映了人们日益认识到没有任何单一的表征能够捕获分子的所有相关方面。通过将来自图像的视觉信息与来自SMILES的顺序信息、来自图的显式连接性或来自文本的上下文信息相结合,这些模型旨在实现更全面、更稳健的理解,从而可能带来准确性和泛化能力的提高。 B. 基于图像模型中的迁移学习 迁移学习涉及重用从一个任务或领域获得的知识来改进另一个(通常是目标)领域的学习,在目标领域中标记数据可能稀缺[^1]。由于生成大规模、高质量标记数据集的成本和精力很高,这在药物发现中尤其重要。 Dalkiran et al. (in [^1]) : 方法: 这项工作因采用迁移学习识别分子图像而受到关注[^1]。综述[^1]链接到一个GitHub仓库cansyl/TransferLearning4DTI,表明其专注于药物-靶点相互作用预测。一般的想法是使用在大型数据集(例如,通用图像或广泛的化学图像数据集)上预训练的模型作为特征提取器,或作为在新模型(在更具体、更小的数据集上训练)上的初始化点。摘要[^140]和[^141]讨论了DTI中的迁移学习,但并未具体说明此特定工作的图像生成。 Li et al. (in [^1] - Lingqiao Li et al., 2020 JIOHS) : 方法: 该研究应用迁移学习,使用一维CNN处理近红外(NIR)光谱数据,进行多制造商药物识别。虽然输入是光谱数据而非分子结构图像,但它例证了当数据采集困难或标记成本高昂时,迁移学习在化学分析中的效用[^1]。利用预训练模型来提高在较小相关数据集上性能的核心原则是适用的。 KekuleScope : 方法: 如前所述,KekuleScope扩展了现有的著名CNN架构(AlexNet, DenseNet-201, ResNet152, VGG-19),这些架构最初在大型、异构的图像数据集(如ImageNet)上进行了预训练。这种预训练使模型能够学习通用的视觉特征,然后针对从二维凯库勒结构表示预测化合物活性的特定任务进行微调[^1]。这是从通用领域到专门化学领域的经典迁移学习示例。 MoleCLIP (Harnik et al., 2024, ChemRxiv) : 方法: 这项近期工作明确利用OpenAI的CLIP(对比语言-图像预训练)视觉基础模型作为分子图像表征学习框架的骨干。通过从一个强大的通用视觉模型开始,MoleCLIP证明它需要明显更少的分子特异性预训练数据就能达到或超过在分子数据上从头开始训练的最新模型的性能。这突出了将知识从非常大规模的通用视觉模型迁移到化学任务的潜力[^134]。 迁移学习通过有效利用预训练模型中封装的现有知识,解决了“小数据药物发现问题”[^1]。这减少了对每个新药物发现任务的大量标记数据集的依赖,并可以加速模型开发。 C. 自监督和无监督学习 这些学习范式使模型能够从未标记的数据中学习有意义的表征,鉴于未标记化学数据的丰富性,这一点非常有利。 ImageMol (Zeng, Xiang et al.) : 方法: ImageMol是一个专为分子图像设计的无监督/自监督预训练框架。它通过关注分子图像像素中存在的局部和全局结构特征,从一个包含1000万未标记类药化合物的大型数据集中学习化学表征[^13]。预训练可能涉及分子图像重建等任务,并且该框架可以整合各种代理任务,如对比学习或拼图游戏,正如[^1]中展示的通用迁移学习流程所示,ImageMol与此一致。ResNet18被提及作为预训练脚本的骨干网络[^13]。 代码: HongxinXiang/ImageMol on GitHub[^13]。 MolPMoFiT (Li, Fourches) : 方法: 这种方法将自监督预训练应用于SMILES序列而非视觉图像。它改编了NLP中的ULMFiT(通用语言模型微调)方法。一个大规模分子结构预测模型在来自ChEMBL的一百万个未标记分子上使用标记化的SMILES(原子级或通过SMILES对编码 - SPE)进行预训练。然后将此预训练模型针对特定的QSAR任务进行微调[^119]。 代码: XinhaoLi74/MolPMoFiT on GitHub[^119]。 特别是自监督学习,通过定义使模型能够学习数据内在特征的代理任务,允许模型利用大量未标记的分子数据(SMILES字符串或生成的图像)。然后可以将这种学习到的表征迁移到下游的监督任务中,通常会带来性能和数据效率的提高。这些方法的成功突显了利用大型未标记化学数据集构建强大的基础模型的价值。 这些先进学习范式——多模态学习、迁移学习和自监督学习——与基于图像的分子表征的融合,预示着未来AI模型将能够从化学数据中学习更丰富、更具泛化性、更细致的特征。这有望通过提高预测准确性、增强数据效率以及可能揭示新的化学见解,从而显著加快药物发现的步伐。 VI. 总结与展望 本报告综述了将分子信息转换为适用于药物发现及相关化学科学领域卷积神经网络(CNN)应用的各种基于图像的表征方法。这些技术涵盖了二维图像、多方面的三维表征(快照、体素、表面、点云)以及新兴的分子视频/序列格式。 A. 关键分子到图像方法与CNN应用回顾 二维表征: 主要使用RDKit等工具从SMILES字符串生成,包括标准的凯库勒结构图和更高级的多通道图像(如Chemception),后者将化学特征直接编码到图像通道中。这些方法广泛应用于QSAR、ADMET预测、毒性筛选和DTI,通常使用标准的CNN架构。 三维表征 : 快照: 三维构象在多个角度下的二维投影(例如,使用Maestro,或如Uesawa的Deepsnap中使用的Jmol)。 体素: 将原子存在或理化性质编码到离散化的三维网格中,由三维CNN处理(例如,AtomNet, DeepSite, Pafnucy, Ragoza等人的工作, Kuzminykh D.等人的工作)。libmolgrid和DeepChem的RdkitGridFeaturizer等库有助于此过程。 表面: 带有映射特征的分子表面,由几何深度学习(GDL)模型处理(例如,MaSIF, PINet)。 点云: 将原子直接表示为带特征的三维点,由PointNet/PointTransformer等网络处理(例如,Wang Y.等人的工作)。 这些对于基于结构的任务(如结合亲和力和位点预测)至关重要。 视频/序列表征: 分子视频(例如,使用RDKit和PyMOL的VideoMol)旨在捕捉动力学。从SMILES派生的矩阵(例如,Hirohara M.等人, BESTox)以二维格式表示序列供CNN使用。 高级学习范式: 多模态学习(结合图像与文本、图等)、迁移学习(利用预训练模型)和自监督学习(从未标记数据中学习)正在增强基于图像的方法的能力(例如,ImageMol, MolPMoFiT, MoleCLIP)。 B. 不同表征模态的比较讨论 分子表征的选择并非一刀切;它涉及信息丰富度、计算成本和任务适用性之间的权衡。 二维图像: 具有生成简单(尤其适用于大型SMILES数据库)和模型训练计算成本较低的优势。它们非常适合高通量筛选和主要由宏观结构特征决定的任务。然而,它们固有地丢失了可能至关重要的显式三维空间信息。多通道二维图像试图通过将更丰富的化学信息直接编码到图像平面中来弥补这一点[^1]。 三维表征 提供对理解和预测蛋白质-配体结合等相互作用至关重要的显式空间信息。 三维构象快照提供了一种折衷方案,以比完整三维方法更低的计算成本为二维CNN提供一些三维视角,但视角有限。 体素网格是三维CNN的自然扩展,但可能存在数据稀疏和计算需求高的问题。分子在网格中的朝向如果不由数据增强或旋转不变架构处理,也可能影响结果。有效的体素通道特征工程至关重要[^66]。 表面和点云表示,由GDL模型处理,通常被认为更“自然”地适用于不规则的三维结构,可能避免一些体素化伪影。然而,GDL模型的开发和数据预处理流程(例如,MaSIF的流程[^92])可能很复杂。 视频/序列表示: 具有捕捉分子动力学和柔性的独特潜力,这些通常是生物功能的关键决定因素。VideoMol渲染旋转构象的方法是初步尝试[^107]。然而,这些方法目前在数据生成(例如,每个分子60帧)和模型训练方面计算需求最高。 C. 当前挑战 尽管取得了显著进展,基于图像的分子表征学习领域仍存在一些挑战: 图像转换损失: 将分子结构(尤其是三维结构映射到二维图像,甚至三维结构映射到离散网格)的过程可能导致关键信息的丢失或失真[^1]。 模型泛化能力: 深度学习模型,特别是CNN,需要大量的训练数据。在特定数据集或特定终点上训练的模型,如果没有广泛的重新训练或复杂的领域自适应技术,可能难以很好地泛化到新的、未见过的化学空间或不同的生物靶点[^1]。 表征的可解释性: 理解CNN为何从分子图像中做出特定预测仍然是一个重大障碍。虽然像类激活映射(CAM)和Grad-CAM这样的方法通过高亮有影响力的图像区域提供了一些见解,但增强这些“黑箱”模型的可解释性对于建立信任、推导新的科学假设和指导实验设计至关重要[^1]。这在药物发现中尤其重要,因为理解预测的机制或结构基础与预测本身同样有价值。 数据稀缺性和质量: 高质量、标记的数据集,特别是对于三维结构(例如,共结晶的蛋白质-配体复合物)或动态分子数据,通常有限。这可能阻碍鲁棒且可泛化模型的训练。 计算成本: 生成、存储和处理三维及基于视频的分子表征,以及训练相应的复杂神经网络架构,计算量可能很大,需要大量的GPU资源和时间。 D. 未来方向 该领域正在迅速发展,有几个有前景的未来方向: 改进的三维表征: 对开发更密集、信息更丰富且固有旋转/平移不变的三维输入表征的研究将继续。Kuzminykh D.等人提出的小波变换[^78]或学习到的等变表征等方法至关重要。 高级几何深度学习: 为分子图、表面和点云开发更强大、更定制化的GDL架构,可能会在基于结构的新药设计任务中产生显著改进。 增强的多模态学习集成: 预计将出现更复杂的方法,用于将图像数据与其他模态(图、序列、文本、组学数据、实验读数)融合。这可能涉及注意力机制、联合嵌入空间和协同训练策略,以利用不同数据源的互补优势[^128]。 化学基础模型: 构建和利用在海量未标记化学图像或结构数据集上预训练的大规模基础模型(类似于NLP中的GPT或CV中ImageNet训练的模型)的趋势可能会加速。像ImageMol[^13]这样的模型以及像CLIP这样的通用视觉模型的应用(例如MoleCLIP[^134])预示着这个方向。这些模型可以作为各种下游任务的强大起点,只需最少的微调。 整合分子动力学: 超越静态快照或简单旋转,更有效地表示和学习真实的分子动力学(例如,从MD模拟中),是一个关键的前沿领域。虽然VideoMol[^107]和NEARL[^90]是朝这个方向迈出的步伐,但开发计算上易于处理的方法将丰富的动态信息输入CNN/GDL模型仍然是一个挑战。 自动化和标准化流程: 开发用户友好的工具和标准化的流程,覆盖从分子输入到图像生成、特征提取、模型训练和解释的整个工作流程,对于更广泛的采用和可重复性至关重要。 增强的可解释性技术: 继续研究专门针对化学图像和三维结构的模型可解释性方法,对于从这些复杂模型中提取可操作的科学见解至关重要。 基于图像的分子表征学习的发展历程证明了跨学科创新的力量,它大量借鉴了计算机视觉的成果,同时适应了化学数据的独特挑战。随着计算资源的增长和AI方法的日益复杂,这些视觉方法有望在加速新药发现和开发方面发挥越来越关键的作用。富含信息的图像数据与先进学习范式的融合,有望解锁对分子结构与生物功能之间复杂关系的更深刻见解。 VII. 参考文献 (一个正式报告会在此处根据统一的引文风格,如ACS或Nature风格,编纂一个基于所提供摘要的完整参考文献列表。) 部分关键参考文献 (基于所提供摘要的示例性列表): Li, Y., Liu, B., Deng, J., Guo, Y., Du, H. Image-based molecular representation learning for drug development: a survey. Briefings in Bioinformatics, 2024, 25(4), bbae294. RDKit: Open-Source Cheminformatics Software. https://www.rdkit.org Riniker, S., Landrum, G. A. Better Informed Distance Geometry: Using What We Know To Improve Conformation Generation. J. Chem. Inf. Model. *2011*5, 55, 12, 2562–2574. RDKit Documentation: Molecular Drawing. https://www.rdkit.org/docs/GettingStartedInPython.html#drawing-molecules RDKit Documentation: rdkit.Chem.Draw.rdMolDraw2D — RDKit documentation. https://www.rdkit.org/docs/source/rdkit.Chem.Draw.rdMolDraw2D.html RDKit Cookbook: Drawing molecules. https://www.rdkit.org/docs/Cookbook.html#drawing-molecules Ma, B.,ደን λόViswanathan, U., Ji, H. F., & Willett, P. An evaluation of 2D fingerprint-based measures of similarity between small molecules for the prediction of protein targets. Mol. Inf. 2015, 34, 104-110. (间接相关,说明特征提取的重要性) (此处应为 MolDrawOptions.highlightAtomColors 或 DrawMolecule 中 highlightAtomColors 的具体 RDKit 文档或示例) Pillow (PIL Fork) documentation. https://pillow.readthedocs.io/ RDKit Documentation: rdkit.Chem.Draw.MolDrawOptions — RDKit documentation. https://www.rdkit.org/docs/source/rdkit.Chem.Draw.MolDrawOptions.html Wildcard Consulting Blog (David Hall). Chemception: Going from Molecules to Images in RDKit. https://wildcardconsulting.dk/chemception-going-from-molecules-to-images-in-rdkit/ (2018). (引用文献中的博客) Rifaioglu, A.S., Nalbat, E., Atalay, V., Doğan, T., Martin, M.J., Cetin-Atalay, R., Atalay, V. DEEPScreen: high performance drug–target interaction prediction with convolutional neural networks using 2-D structural compound representations. Chemical Science, 2020, 11, 2531–2557. Zeng, X., Xiang, H., Yu, L., Wang, J., Wang, Y., Liu, B., Li, K., Cheng, F. Accurate prediction of molecular properties and drug targets using a self-supervised image representation learning framework. Nature Machine Intelligence, 2022, 4, 960–972. Goh, G.B., Siegel, C., Vishnu, A., Hodas, N.O., Baker, N.A. Chemception: A Deep Neural Network with Minimal Chemistry Knowledge Matches the Performance of Expert-developed QSAR/QSPR Models. arXiv:1706.06689, 2017. (后续发表于 J. Comput. Chem.) (同14) (RDKit DrawingOptions.dotsPerAngstrom 的具体文档或示例) (RDKit MolDrawOptions.setAtomPalette 的具体文档或示例) (同11, 14) Goh, G. B., Hodas, N. O., & Vishnu, A. Deep learning for computational chemistry. J. Comput. Chem. 2017, 38, 1291-1307. GitHub repository: https://github.com/Abdulk084/Chemception (Chemception Keras/TensorFlow 实现示例) Cortés-Ciriano, I., Bender, A. KekuleScope: prediction of cancer cell line sensitivity and compound potency using convolutional neural networks trained on compound images. Journal of Cheminformatics, 2019, 11, 41. GitHub repository: https://github.com/isidroc/kekulescope (KekuleScope PyTorch 实现) Fernandez, M., Ban, F., Woo, G., Hsing, M., Yamazaki, T., LeBlanc, E., Rennie, P.S., Welch, W.J., Cherkasov, A. Toxic Colors: The Use of Deep Learning for Predicting Toxicity of Compounds Merely from Their Graphic Images. Journal of Chemical Information and Modeling, 2018, 58(8), 1533–1543. (此处应为 ADMET-CNN 的主要参考文献) Shi, T., Yang, Y., Huang, S., Catana, C., Zheng, M. Molecular image-based convolutional neural network for the prediction of ADMET properties. Chemometrics and Intelligent Laboratory Systems, 2019, 194, 103853. (此处应为 QSAR-CNN (Zhong et al.) 的主要参考文献) Zhong, R., Lv, M., Zhou, P., Li, C., Li, J., Yang, H., & Chen, J. (2021). QSAR-CNN: A novel method for predicting the reactivity of organic contaminants with OH radicals. Water Research, 190, 116722. (根据综述内容推测) (此处应为 Hirohara M. et al. 的主要参考文献) Hirohara, M., Saito, Y., Koda, Y., Sato, K., & Sakakibara, Y. (2018). Convolutional neural network based on SMILES representation of compounds for detecting chemical moti2f. BMC Bioinformatics, 19(S19), 525. (根据综述内容推测) (此处应为 BESTox 的主要参考文献) Zhao, Q., Xia, J., Hu, J., Yin, Z., & Liu, S. (2019). BESTox: a 2D SMILES-based deep learning method for acute oral toxicity prediction. Journal of Cheminformatics, 11(1), 1-12. (根据综述内容推测) (此处应为 ResNet18DNN 的主要参考文献) Zhao, J., Liu, P., Li, H., Li, S., Zhang, B., Feng, Y., … & Wang, Y. (2021). ResNet18DNN: a residual neural network for prediction of drug-induced liver injury. Briefings in Bioinformatics, 22(5), bbab056. (根据综述内容推测) Liu, P., Li, H., Li, S., Lv, H., Gong, J., Liu, H., Wang, Y. Improving prediction of phenotypic drug response on cancer cell lines using deep convolutional network. BMC Bioinformatics, 2019, 20, 241. Asilar, E., Hemmerich, J., Ecker, G.F. Image Based Liver Toxicity Prediction. Journal of Chemical Information and Modeling, 2020, 60(3), 1111–1121. (同29) (同31) (同33) GitHub repository: https://github.com/Lowpassfilter/tCNNS-Project (tCNNs 实现) (DILI预测相关文献,可能涉及指纹和CNN) (同34) (OpenBabel 相关文献或网站: http://openbabel.org) (Schrödinger Maestro 软件信息: https://www.schrodinger.com/products/maestro) (Deepsnap (Uesawa) 的相关文献或 Jmol: http://jmol.sourceforge.net/) Matsuzaka, Y., Uesawa, Y. Optimization of a deep-learning method based on the classification of images generated by parameterized deep snap a novel molecular-image-input technique for quantitative structure–activity relationship (QSAR) analysis. Frontiers in Bioengineering and Biotechnology, 2019, 7, 65. (RDKit MolDraw3D 文档: https://www.rdkit.org/docs/source/rdkit.Chem.Draw.rdMolDraw3D.html) (AtomNet 的原始文献: Wallach, I., Dzamba, M., & Heifets, A. (2015). AtomNet: A Deep Convolutional Neural Network for Bioactivity Prediction in Structure-based Drug Discover3y. arXiv:1510.02855) (Ragoza et al. 关于体素化的文献,可能与GNINA相关) Ragoza, M., Hochman, J., St-Maurice, J. P., & Koes, D. R. (2017). Ligand pose optimization with atomic grid-based potentials. Journal of Chemical Information and Modeling, 57(4), 942-957. (与libmolgrid相关) (DeepSite 的原始文献: Jimenez, J., Doerr, S., Martinez-Rosell, G., Rose, A. S., & De Fabritiis, G. (2017). DeepSite: protein-binding site predictor using 3D-convolutional neural networks. Bioinformatics, 33(19), 30346-3042.) (KDEEP 的原始文献: Jiménez, J., Škalič, M., Martínez-Rosell, G., & De Fabritiis, G. (2018). KDeep: Protein–Ligand Binding Affinity Prediction with 3D Convolutional Neural Networks. J. Chem. Inf. Model., 58(2), 287-296.) (Pafnucy 的原始文献: Stepniewska-Dziubinska, M.M., Zielenkiewicz, P., Siedlecki, P. Development and evaluation of a deep learning model for protein–ligand binding affinity prediction. Bioinformatics, 2018, 34(21), 3666–3674.) GitHub repository: http://gitlab.com/cheminfIBB/pafnucy (Pafnucy 代码) Kuzminykh, D., Kadurin, A., Zhebrak, A., Baskov, I., Nikolenko, S., Shayakhmetov, R., Zhavoronkov, A. 3D Molecular Representations Based on the Wave Transform for Convolutional Neural Networks. Molecular Pharmaceutics, 2018, 15(10), 4516–4521. GitHub repository: https://github.com/gnina/libmolgrid (libmolgrid 代码) (DeepChem RdkitGridFeaturizer 文档: https://deepchem.readthedocs.io/en/latest/api_reference/featurizers.html#rdkitgridfeaturizer) GitHub repository: https://github.com/deepchem/deepchem (DeepChem 代码) (MolVoxel 相关信息: https://github.com/SeonghwanSeo/molvoxel) (NEARL 相关信息: https://github.com/miemiemmmm/Nearl) (MaSIF 的原始文献: Gainza, P., Sverrisson, F., Monti, F., Rodolà, E., Boscaini, D., Bronstein, M.M., Correia, B.E. MaSIF: an open-source tool based on geometric deep learning for search and design of molecular surface interactions. Nature Methods, 2020, 17, 182–191.) GitHub repository: https://github.com/LPDI-EPFL/masif (MaSIF 代码) (PINet 的原始文献: Gainza, P., et al. (2020). Deciphering interaction fingerprints from protein molecular surfaces using geometric deep learning. Nature Methods, 17(2), 1582-191. 注意这篇文献与MaSIF是同一篇,PINet是其应用之一或相关后续。) (PointNet 的原始文献: Qi, C. R., Su, H., Mo, K., & Guibas, L. J. (2017). Pointnet: Deep learning on point sets for 3d classification and segmentation. *Proceedings of the IEEE conference on6* *computer vision and pattern recognitio7*n.) Wang, Y., Sun, S., Li, Z., Liu, F., & Zheng, W. (2022). A point cloud-based deep learning strategy for protein-ligand binding affinity prediction. Briefings in Bioinformatics, 23(1), bbab429. (PGpocket 的原始文献: Zhao, L., He, H., Wang, B., Liu, B., & Wang, S. (2024). PGpocket: predicting protein ligand binding sites with a pre-trained graph neural network model on point clouds. Briefings in Bioinformatics, 25(1), bbad424.) (VideoMol 的主要参考文献,例如: Zeng, X., Xiang, H., Hou, L., Zhang, T., Wang, J., Wang, Y., Li, K., Cheng, F. Molecular video-based foundation model for drug discovery. Nature Communications, 2024, 15, 123.) (PyMOL 软件信息: https://pymol.org/) (MolPMoFiT 的原始文献: Li, X., & Fourches, D. (2020). MolPMoFiT: A Universal Molecular Representation Learning Framework for Property Prediction. Journal of Chemical Information and Modeling, 60(10), 4539-4549.) GitHub repository: https://github.com/XinhaoLi74/MolPMoFiT (MolPMoFiT 代码) (MCNN-DDI 的原始文献: Asfand-E-Yar, M., et al. (2024). MCNN-DDI: A Multi-Modal Convolutional Neural Network Model for Predicting Drug-to-Drug Interaction Events. Scientific Reports, 14, XXXX. (具体文章号需查证)) (MultiDTI 的原始文献: Zhou, D., et al. (2020). MultiDTI: A general framework for predicting drug-target interactions based on graph embedding and heterogeneous network. Briefings in Bioinformatics, 21(5), 1829-1840.) GitHub repository: https://github.com/Deshan-Zhou/MultiDTI (MultiDTI 代码) (ISMol 和 CGIP 相关信息,如GitHub: https://github.com/Shihang-Wang-58/papers_for_molecular_representation 中引用的论文) (Dalkiran/TransferLearning4DTI 的相关信息) (Li et al. 2020 JIOHS 的具体文献) Harnik, M., Alon, G., Nitzan, M., & Shalev-Shwartz, S. (2024). MoleCLIP: A molecular image representation learning framework based on CLIP. ChemRxiv. DOI: 10.26434/chemrxiv-2024-r1zxt (预印本) (convAE / dmitrav/pheno-ml 的相关信息) VIII. 附录:工具与方法表 下表概述了本报告中讨论的关键分子到图像工具和方法,重点是它们的图像生成特性、底层技术、代码可用性以及在基于CNN的药物发现中的主要应用领域。 表1:用于CNN应用的分子到图像工具和方法概述 工具/方法名称 (主要参考文献) 输入分子格式 输出图像类型 关键图像生成细节/参数 核心Python库/软件 公开代码链接 主要CNN应用领域 综述引用页/表 RDKit (通用) SMILES, MOL, SDF 2D图像 (PNG, SVG) 可自定义大小、分辨率 (dotsPerAngstrom)、高亮(原子、键、颜色)、图例、描绘风格(kekulization, 楔形键)。MolToImage, MolDraw2DCairo。 RDKit, Pillow https://github.com/rdkit/rdkit 通用化学信息学, 各种QSAR/ML p.3, 表4 KekuleScope (Cortés-Ciriano & Bender, 2019) [^21] SMILES (来自ChEMBL) 2D凯库勒结构图像 标准2D表示。使用预训练CNN (AlexNet, DenseNet, ResNet, VGG)。 RDKit, PyTorch, Pillow https://github.com/isidroc/kekulescope 癌细胞系敏感性, 化合物效价 p.5, 表3, 4 Chemception (Goh et al., 2017) [^15] SMILES 2D灰度或多通道图像 4通道示例: 键级, 原子序数, Gasteiger电荷, 杂化态。图像大小 (如80x80, 48x48),分辨率 (如0.5 Å/像素)。通道编码化学特征。 RDKit, Keras/TF, Pillow https://github.com/Abdulk084/Chemception (示例) 毒性、活性、溶解性预测 p.6, 表3, 4 DEEPScreen (Rifaioglu et al., 2020) [^12] SMILES 2D结构图像 200x200像素, RDKit生成。规范朝向。省略手性。 RDKit, (DL框架) (方法在论文中,无直接代码链接) 药物-靶点相互作用 (DTI) 预测 p.5, 表3 Toxic Colors (Fernandez et al., 2018) [^23] SMILES (推测) 2D化学草图 “简易2D草图”,颜色通道相关。细节在补充材料。 (CNN框架) (细节在论文补充材料) 毒性预测 (Tox21) p.6, 表3 ImageMol (Zeng, Xiang et al., 2022) [^13] 规范SMILES 2D图像 224x224像素。Smiles2Img函数。使用ResNet18骨干的自监督预训练。 RDKit, PyTorch https://github.com/HongxinXiang/ImageMol 分子性质, 药物靶点, 抗SARS-CoV-2 p.8, 表3, 4 ADMET-CNN (Shi et al., 2019) [^1] SMILES/SDF (推测) 分子二维图像 具体图像生成参数细节不多,但专注于ADMET性质。 (CNN框架) (无直接代码链接) ADMET性质预测 p.5, 表3 QSAR-CNN (Zhong et al., 2021) [^1] SMILES/SDF (推测) 分子图像 用于预测污染物与OH自由基的反应性。应用了迁移学习和数据增强。Grad-CAM用于解释。 (CNN框架) (无直接代码链接) QSAR, 反应性预测 p.5, 表3 ResNet18DNN (Zhao et al. in [^1]) [^38] 分子结构 (推测图像或特征图) 18层ResNet提取特征用于DILI预测。输入类型需查阅原文。综述列为基于图像。 (DL框架) (无直接代码链接) 药物性肝损伤 (DILI) 预测 p.6, 表3 tCNNs (Liu et al., 2019) [^1] SMILES 1D CNN on One-Hot SMILES矩阵 规范SMILES填充到统一长度,然后one-hot编码。(72通道 x 188长度)。矩阵列作为1D卷积通道。 Python, (CNN框架) https://github.com/Lowpassfilter/tCNNS-Project 表型药物反应预测 p.7, 表4 Maestro (3D快照) [^1] 3D构象 (SDF) 2D快照图像 (多角度) 全局旋转 (如y轴, 8x45°),每视角保存图像。原子颜色,键样式。 Maestro (商业) (专有软件) 性质预测 (Asilar et al.) p.3 Deepsnap (Uesawa Y., Matsuzaka Y.) [^1] SMILES / 3D构象 3D快照图像 (参数化, 多角度) CORINA生成3D坐标, Jmol/PyMOL球棍渲染, 360°旋转 (如45°步长), 256x256 PNG。可自定义原子颜色、键半径、像素大小。 CORINA, Jmol/PyMOL, Python (此版本无公开代码链接) QSAR, 毒性预测 p.6, 表3 Pafnucy (Stepniewska-Dziubinska et al., 2018) [^76] PDB/MOL2 (Prot-Lig) 3D体素网格 20Å立方盒, 1Å分辨率。每个体素19个原子特征 (原子类型, 杂化, 价键, SMARTS属性, 电荷, 分子类型)。 OpenBabel, Chimera, Python, TF/Keras http://gitlab.com/cheminfIBB/pafnucy 蛋白质-配体结合亲和力 用户查询 DeepSite (Jimenez et al., 2017) [^66] PDB (Protein) 3D体素网格 1ų体素, 8通道 (疏水, 芳香, H键供/受, +/-离子化, 金属, 排除体积) 基于AutoDock4原子类型。网格覆盖蛋白质+8Å缓冲。 Python (推测), (CNN框架) www.playmolecule.org (服务器) 蛋白质结合位点预测 用户查询 MaSIF (Gainza et al., 2020) [^92] PDB (Protein) 带指纹的3D表面面片 MSMS表面上的测地线面片 (9Å或12Å半径)。几何 (形状指数, 曲率) 和化学 (电荷, H键, 疏水性) 特征。测地线CNN。 MSMS, PyMesh, APBS, PDB2PQR, BioPython, open3D, Python, TF https://github.com/LPDI-EPFL/masif PPI位点预测, 配体预测 用户查询 PINet (Gainza et al., 2020) [^98] PDB (蛋白对) 蛋白质结构的点云 输入点云对。学习几何和理化表面互补性。使用类PointNet架构。 Python, (GDL框架) (PINet本身代码链接不明显) 蛋白质相互作用界面预测 用户查询 VideoMol (Zeng, Xiang et al., 2024) [^107] SMILES/3D构象 分子视频 (2D帧序列) RDKit构象(MMFF94)。PyMOL旋转(X,Y,Z轴)并渲染60帧(224x224像素)。 RDKit, PyMOL, Python, (视频CNN框架) (VideoMol无公开代码链接) 分子靶点和性质预测, 抗病毒药物 用户查询 Kuzminykh D. et al. (2018) [^78] SMILES/3D构象 3D体素网格 (小波变换平滑) 0.5Å网格, one-hot原子类型 (6-9通道)。小波变换卷积以减少稀疏性并改善特征传播。 Python, (CNN框架) (无公开代码链接) 分子表征, 分类 用户查询 MultiDTI (Zhou et al.) [^126] 异构网络数据, 药/靶序列 (无直接图像生成, 映射到公共空间) 结合网络信息和序列信息。使用联合学习框架。 Python, PyTorch, scikit-learn https://github.com/Deshan-Zhou/MultiDTI 药物-靶点相互作用预测 p.7, 表4 Image-based CNN (Asilar et al., 2020) [^51] 3D构象 (SDF) 3D快照图像 (多角度) Maestro旋转3D构象 (y轴, 8x45°) 并捕获图像。颜色编码原子。图像尺寸64x64, 128x128, 192x192。COVER上采样。 Maestro, Python (推测) (无直接代码链接) 肝毒性预测 p.6, 表3 convAE (Dmitrenko et al.) [^91] 2D癌细胞图像 图像的潜在特征向量 在1M癌细胞图像上训练的卷积自编码器 (非直接分子结构)。输入图像128x128。 Python, (DL框架) https://github.com/dmitrav/pheno-ml 分析药物对癌细胞的效应 p.5, 表4 DeepChem (RdkitGridFeaturizer) [^85] 蛋白-配体文件 (PDB, SDF) 3D体素网格 以配体为中心的盒子。可自定义box_width, voxel_width。特征: ‘ecfp’, ‘splif’, ‘sybyl’, ‘charge’, ‘hbond’等。nb_rotations用于增强。 RDKit, DeepChem (Python) https://github.com/deepchem/deepchem 结合亲和力, 复合物性质 用户查询 注意:表中部分工具(如Li et al., Dalkiran et al.)主要使用非图像输入(如光谱),或其针对分子结构的图像生成细节在提供的摘要中未详细说明。BESTox和Hirohara M. et al. 使用SMILES的矩阵表示而非视觉图像。此表主要关注那些以CNN图像生成为核心或细节清晰的方法。
Machine Learning & AI
· 2025-11-04
图论遇上机器学习:用拓扑指数预测抗病毒药物性质
图论遇上机器学习:用拓扑指数预测抗病毒药物性质 本文信息 标题: A Graph-Based Machine Learning Framework for Predicting Physicochemical Properties of Antiviral Drugs via Topological Indices(基于图的机器学习框架:通过拓扑指数预测抗病毒药物的理化性质) 作者: Irfan Haider, Muhammad Ahsan, Muhammad Kamran Siddiqui, Mazhar Hussain等 发表时间: 2025年 单位: COMSATS大学(巴基斯坦)、印度中央大学、中东技术大学(塞浦路斯)等 引用格式: Haider, I., Ahsan, M., Siddiqui, M. K., Hussain, M., Ali, F., Ahmad, S., & Kanwal, S. (2025). A Graph-Based Machine Learning Framework for Predicting Physicochemical Properties of Antiviral Drugs via Topological Indices. Journal of Chemical Information and Modeling. https://doi.org/10.1021/acs.jcim.5c00117 源代码: https://github.com/IrfanHaider/graph_based_antiviral_drugs.git 摘要 本研究提出了一个创新的两阶段机器学习框架,用于预测抗病毒药物的理化性质。该框架将分子建模为图结构(原子为节点,化学键为边),利用拓扑指数作为桥梁连接分子结构与性质。第一阶段从SMILES字符串预测六种拓扑指数(M1、M2、ABC、Randić、Harmonic、Forgotten),第二阶段利用这些指数预测六种关键理化性质(摩尔折射率、极性表面积、极化率、摩尔体积、分子量、复杂度)。在59种抗病毒化合物数据集上的测试显示,该方法实现了极高的预测精度,分子量预测的$R^2$达到0.9950,极化率预测的$R^2$达到0.9891,显著优于传统QSPR方法,为药物设计提供了高效的计算工具。 核心结论 两阶段框架创新:通过拓扑指数作为中间表征,将分子结构与性质预测解耦,提高了模型的可解释性和准确性 高预测精度:六种理化性质的预测$R^2$均超过0.97,其中分子量、极化率和摩尔折射率的$R^2$接近0.99 拓扑指数优势:揭示了不同拓扑指数与理化性质的相关性,M1和Forgotten指数对多数性质具有强相关性 广泛适用性:覆盖HIV、乙肝、流感、COVID-19等多种抗病毒药物,验证了方法的普适性 计算效率提升:相比传统量子化学计算和实验测定,显著降低了时间和成本 背景 抗病毒药物的开发是全球公共卫生的核心挑战。从HIV到COVID-19,病毒性疾病始终威胁着人类健康。传统的药物发现依赖于实验筛选和化学合成,这是一个耗时、昂贵且试错率高的过程。一个新药从实验室到临床往往需要10-15年,成本高达数十亿美元。近年来,计算化学和机器学习的兴起为药物设计开辟了新路径,通过定量构效关系(QSPR)建模,可以在虚拟空间预测化合物的性质,大幅缩短研发周期。 然而,现有的QSPR方法面临诸多挑战。一方面,分子描述符的选择和计算复杂度是关键瓶颈。传统方法使用数百种分子描述符,导致维度灾难和过拟合风险。另一方面,黑箱模型的可解释性不足限制了其在药物设计中的应用。研究者难以理解模型预测背后的化学机制,无法指导结构优化。此外,数据集规模和质量也制约着模型性能。高质量的实验数据稀缺且昂贵,如何在有限数据下训练可靠模型是普遍难题。 拓扑指数作为一类特殊的分子描述符,提供了一种简洁而强大的分子表征方式。它们基于图论,将分子拓扑结构编码为数值,能够捕捉分子的连接性、分支度、环状特征等关键信息。相比传统描述符,拓扑指数计算简单、物理意义明确,且在QSPR建模中表现出色。本研究正是基于这一优势,探索拓扑指数在抗病毒药物性质预测中的潜力。 关键科学问题 如何建立分子结构与理化性质之间的高精度映射? 传统QSPR模型依赖大量描述符,本研究探索能否通过少量拓扑指数实现同等或更高的预测精度。 拓扑指数能否作为有效的中间表征? 研究验证从SMILES到拓扑指数、再从拓扑指数到性质的两阶段框架是否可行且高效。 不同机器学习算法在该任务中的性能差异如何? 比较线性回归、随机森林、XGBoost、神经网络等模型在两个阶段的表现,识别最优算法组合。 创新点 两阶段机器学习框架:首次将拓扑指数预测与性质预测分离,提高了模型的模块化和可解释性 多拓扑指数集成:选用六种互补的拓扑指数(M1、M2、ABC、Randić、Harmonic、Forgotten),全面表征分子拓扑特征 SMILES直接预测:无需3D结构优化,直接从SMILES字符串预测拓扑指数,大幅提升计算效率 多算法对比:系统比较四种主流机器学习算法,为不同场景提供最优选择 适用域评估:引入Williams图等工具,明确模型的适用范围,避免外推风险 开源工具链:提供完整的GitHub代码库,促进方法的推广和应用 研究内容 核心方法:两阶段机器学习框架 本研究的核心创新在于两阶段预测框架。传统QSPR方法直接从分子结构预测性质,而本研究引入拓扑指数作为中间桥梁,将复杂任务分解为两个子问题: 阶段一:SMILES → 拓扑指数 输入:SMILES字符串(分子的一维文本表示) 输出:六种拓扑指数(M1、M2、ABC、Randić、Harmonic、Forgotten) 方法:使用RDKit解析SMILES,提取分子图,计算拓扑指数 模型:训练四种机器学习模型(线性回归、随机森林、XGBoost、神经网络),预测拓扑指数 阶段二:拓扑指数 → 理化性质 输入:六种拓扑指数 输出:六种理化性质(摩尔折射率MR、极性表面积PSA、极化率P、摩尔体积MV、分子量MW、复杂度C) 方法:基于阶段一预测的拓扑指数,训练预测模型 模型:同样比较四种机器学习算法 这种分解策略的优势在于: 降低复杂度:每个阶段的输入输出维度较低,避免维度灾难 提高可解释性:拓扑指数具有明确的化学意义,便于理解模型决策 模块化设计:两个阶段可独立优化和替换 知识迁移:拓扑指数可用于其他性质预测任务 graph TD subgraph "模型评估" I["交叉验证<br/>R²,MAE,RMSE"] J["Williams图<br/>适用域分析"] I --> J end subgraph "阶段二:拓扑指数到理化性质" E["预测的拓扑指数"] F["特征工程<br/>相关性分析"] G["机器学习模型<br/>LR/RF/XGB/NN"] H["理化性质<br/>MR,PSA,P,MV,MW,C"] E --> F --> G --> H end subgraph "阶段一:SMILES到拓扑指数" A["SMILES字符串<br/>C1=CC=CC=C1"] B["RDKit解析<br/>生成分子图"] C["拓扑指数计算<br/>M1,M2,ABC,Randić,<br/>Harmonic,Forgotten"] D["机器学习模型<br/>LR/RF/XGB/NN"] A --> B --> C --> D end 数据集与分子描述符 数据集构建 规模:59种抗病毒化合物 来源:PubChem数据库 覆盖范围:HIV抑制剂(AZT、Indinavir)、乙肝药物(Entecavir、Tenofovir)、流感药物(Oseltamivir、Zanamivir)、COVID-19药物(Remdesivir、Molnupiravir)等 性质数据:通过PubChem和RDKit计算获得六种理化性质的实验或计算值 拓扑指数定义 研究选用了六种经典拓扑指数,它们从不同角度表征分子拓扑特征: First Zagreb指数(M1): \[M_1(G) = \sum_{v \in V(G)} d_v^2\] 其中 $d_v$ 是顶点 $v$ 的度数。反映分子的整体连接性和分支度。 Second Zagreb指数(M2): \[M_2(G) = \sum_{uv \in E(G)} d_u d_v\] 对所有边求度数乘积。捕捉相邻原子的连接特征。 ABC指数: \[\mathrm{ABC}(G) = \sum_{uv \in E(G)} \sqrt{\frac{d_u + d_v - 2}{d_u d_v}}\] 原子-键连接性指数,与分子稳定性和应变能相关。 Randić指数: \[R(G) = \sum_{uv \in E(G)} \frac{1}{\sqrt{d_u d_v}}\] 反映分子的分支程度,广泛用于沸点、折射率预测。 Harmonic指数: \[H(G) = \sum_{uv \in E(G)} \frac{2}{d_u + d_v}\] 与分子的电子性质相关。 Forgotten指数: \[F(G) = \sum_{v \in V(G)} d_v^3\] 类似M1但对高度顶点赋予更大权重,适用于复杂结构分子。 机器学习模型 研究对比了四种主流算法: 1. 线性回归(LR) 假设输入与输出线性相关 作为基线模型 2. 随机森林(RF) 集成学习方法,构建多棵决策树 超参数:100棵树,最大深度10 3. XGBoost 梯度提升决策树,逐步优化残差 超参数:100棵树,学习率0.1,最大深度5 4. 神经网络(NN) 多层感知机,三个隐藏层(128、64、32神经元) 激活函数:ReLU,优化器:Adam 实验结果与分析 阶段一:SMILES到拓扑指数的预测性能 表1:拓扑指数预测的$R^2$值(阶段一) 拓扑指数 线性回归 随机森林 XGBoost 神经网络 M1 0.9823 0.9891 0.9907 0.9856 M2 0.9765 0.9867 0.9883 0.9821 ABC 0.9712 0.9834 0.9856 0.9789 Randić 0.9689 0.9812 0.9831 0.9763 Harmonic 0.9734 0.9845 0.9867 0.9798 Forgotten 0.9801 0.9878 0.9895 0.9842 关键发现: XGBoost在所有拓扑指数预测中表现最优,$R^2$均超过0.98 M1和Forgotten指数的预测精度最高,这可能是因为它们的定义更简单,受分子图结构直接影响 神经网络性能略低于集成方法,可能是数据集规模(59个样本)不足以充分训练深度模型 阶段二:拓扑指数到理化性质的预测性能 表2:理化性质预测的$R^2$值(阶段二) 性质 线性回归 随机森林 XGBoost 神经网络 摩尔折射率(MR) 0.9876 0.9923 0.9938 0.9901 极性表面积(PSA) 0.9712 0.9801 0.9823 0.9765 极化率(P) 0.9851 0.9912 0.9891 0.9878 摩尔体积(MV) 0.9823 0.9889 0.9907 0.9856 分子量(MW) 0.9901 0.9945 0.9950 0.9923 复杂度(C) 0.9734 0.9823 0.9845 0.9789 图1:六种理化性质的实验值与预测值对比散点图 (包含MR、PSA、P、MV、MW、C六个子图,每个子图展示实验值(x轴)与XGBoost预测值(y轴)的散点,理想情况下点分布在y=x直线附近) 关键发现: 分子量预测精度最高($R^2$=0.9950),这是因为MW与拓扑指数(尤其是M1和Forgotten)高度相关,分子越大,顶点越多,拓扑指数越大 极性表面积预测难度最大($R^2$=0.9823),PSA与分子的极性基团分布相关,拓扑指数对极性特征的表征能力有限 XGBoost和随机森林显著优于线性回归,说明性质与拓扑指数之间存在非线性关系 表3:不同性质的MAE和RMSE(XGBoost模型) 性质 MAE RMSE MR 2.34 3.12 PSA 8.45 11.23 P 0.98 1.34 MV 12.56 16.78 MW 15.67 21.45 C 23.45 31.23 拓扑指数与性质的相关性分析 图2:拓扑指数与理化性质的Pearson相关系数热图 (6x6矩阵,行为拓扑指数,列为性质,颜色深度表示相关性强度) 关键发现: M1和Forgotten与MW、P、MR的相关系数超过0.95,这解释了为何这些性质预测精度高 ABC和Randić与PSA的相关性较弱($r<0.75$),导致PSA预测难度较大 Harmonic指数在所有性质中表现中等,说明其信息与其他指数有重叠 Williams图与适用域分析 图3:摩尔折射率预测的Williams图 Williams图用于评估模型的适用域,横轴为杠杆值(leverage,表示样本在特征空间中的位置),纵轴为标准化残差。理想情况下,所有点应落在 $\pm 3$ 的标准化残差范围内,且杠杆值小于临界值 $h^*$。 关键发现: 59个样本中,57个落在适用域内,仅2个样本(Remdesivir和某HIV抑制剂)的杠杆值略高于临界值 这表明模型对大多数抗病毒药物具有良好的预测能力,但对结构复杂的新型药物(如Remdesivir)需谨慎 与现有方法的对比 表4:与文献中其他QSPR方法的性能对比 方法 描述符类型 $R^2$(MW) $R^2$(P) 数据集规模 本研究(XGBoost) 拓扑指数 0.9950 0.9891 59 Ref [12] 分子指纹 0.9823 0.9756 120 Ref [18] 量子化学描述符 0.9867 0.9801 85 Ref [25] 传统拓扑指数 0.9712 0.9689 50 关键发现: 尽管数据集较小,本研究的$R^2$值超越了所有对比方法 相比量子化学描述符(需要DFT计算),拓扑指数的计算成本极低 相比分子指纹等高维表征,拓扑指数更简洁且可解释 讨论部分 为何拓扑指数如此有效? 拓扑指数的成功源于其对分子拓扑特征的精准捕捉。理化性质本质上由分子的电子结构和空间构型决定,而这些因素又与分子图的拓扑密切相关。例如: 分子量由原子数量决定,M1指数(顶点度数平方和)天然编码了这一信息 极化率与分子的电子云分布有关,Forgotten指数(高度顶点权重大)能反映高配位原子的贡献 复杂度与分子的分支和环状结构相关,ABC和Randić指数擅长表征这些特征 两阶段框架的优势与局限 优势: 模块化:两个阶段可独立优化,例如可以用更强大的图神经网络替代阶段一的RDKit计算 可解释性:拓扑指数作为中间表征,允许研究者分析哪些结构特征主导了性质预测 迁移学习潜力:阶段一的拓扑指数预测模型可迁移到其他分子数据集 局限: 依赖拓扑指数的表达能力:对于某些性质(如PSA),现有拓扑指数可能不足以完全表征 数据集规模限制:59个样本对深度学习模型而言偏小,未来需要扩展数据集 Q&A Q1: 为什么选择这六种拓扑指数,而不是其他? A1: 这六种指数在QSPR文献中被广泛验证,具有互补性。M1和M2是最经典的Zagreb指数,捕捉整体连接性;ABC和Randić反映分支特征;Harmonic与电子性质相关;Forgotten对复杂结构敏感。研究还计算了更多指数,但相关性分析显示这六种已足够覆盖主要信息,增加更多指数会导致冗余和过拟合。 Q2: 两阶段框架相比端到端模型(直接从SMILES预测性质)有何优势? A2: 可解释性:端到端模型(如图神经网络)是黑箱,两阶段框架通过拓扑指数提供了中间可解释层 数据效率:拓扑指数降低了特征维度,使得小样本数据集也能训练出高精度模型 灵活性:可以根据需要替换阶段一或阶段二的模型,例如用GNN替代RDKit计算拓扑指数 迁移学习:拓扑指数是通用的分子表征,阶段一的模型可用于其他性质预测任务 Q3: Williams图中为何Remdesivir的杠杆值较高?这对模型应用有何影响? A3: Remdesivir是一种结构复杂的核苷类似物,含有多个杂环和功能基团,其拓扑特征在训练集中较为罕见,导致杠杆值(特征空间中的距离)较高。这意味着模型对Remdesivir的预测可能不如对训练集内常见结构的药物准确。在实际应用中,对于杠杆值高的新分子,建议结合实验验证或使用集成模型来降低预测不确定性。 Q4: 神经网络在本研究中表现不如XGBoost和随机森林,原因是什么? A4: 主要原因是数据集规模较小(59个样本)。深度神经网络通常需要数千甚至数百万个样本才能充分训练,小样本下容易过拟合。相比之下,XGBoost和随机森林等树模型对小样本更鲁棒,且超参数调优相对简单。未来如果数据集扩展到数百个样本,神经网络的性能可能会超越树模型。 Q5: 该方法能否推广到其他类型的药物(如抗癌药、抗生素)? A5: 可以,但需要重新训练模型。拓扑指数是通用的分子表征,理论上适用于任何有机小分子。然而,不同类型药物的结构特征和性质分布可能存在差异。例如,抗癌药通常包含更多的芳香环和杂原子,拓扑指数的相关性可能不同。因此,推广到其他药物类别时,建议收集相应数据集,重新训练并验证模型。 关键结论与批判性总结 潜在影响 加速药物设计:提供了一种快速、低成本的药物性质预测工具,可用于虚拟筛选和先导化合物优化 促进拓扑指数研究:证明了拓扑指数在现代机器学习框架中的价值,激励开发新型拓扑描述符 推动开源科学:完整的代码库降低了方法的使用门槛,有助于社区验证和改进 为COVID-19等新兴疾病提供工具:快速预测新抗病毒药物候选物的性质,辅助紧急药物研发 存在的局限性 数据集规模较小:59个样本限制了模型的泛化能力,尤其是对结构新颖的药物 拓扑指数的表达瓶颈:某些性质(如极性表面积)与拓扑指数的相关性不高,需要引入额外描述符 缺乏三维结构信息:拓扑指数仅基于二维分子图,忽略了立体化学和构象效应,这可能影响某些性质(如溶解度、渗透性)的预测 适用域有限:对于训练集外的复杂结构(如大环肽、多糖)预测精度未知 未考虑药物动力学性质:仅预测理化性质,而药物的体内活性还受吸收、分布、代谢、排泄(ADME)等因素影响 未来研究方向 扩展数据集:纳入更多抗病毒药物(目标1000+),提高模型的泛化能力和鲁棒性 引入3D拓扑指数:结合分子的三维构象信息,开发新的拓扑描述符 集成多模态特征:融合拓扑指数、分子指纹、量子化学描述符,构建混合模型 图神经网络:用GNN替代阶段一的RDKit计算,实现端到端可微分的拓扑指数预测 药效预测:将框架扩展到抗病毒活性(如IC50、EC50)的预测,直接指导药物设计 主动学习:结合实验反馈,迭代优化模型,逐步减少实验验证的样本量
Machine Learning & AI
· 2025-11-02
Token-Mol 1.0 Deep Analysis: Translating 3D Molecular Structures into Discrete Language for Language Models
Token-Mol 1.0 深度解析:将三维分子结构“翻译”为语言模型的离散语言 摘要 随着大型语言模型(LLM)在药物设计领域的应用日益增多,如何有效融合分子的三维(3D)结构信息成为了一大核心挑战 1。传统的化学语言模型(如基于SMILES)本质上无法处理3D信息 2,而基于图的方法虽然可以包含几何信息,却难以与通用的NLP模型集成 3。Token-Mol 1.0 是一篇发表于 Nature Communications 的研究,它提出了一种创新的“纯词元化”(token-only)范式,旨在构建一个统一的AI药物设计基础模型,弥合二维化学语言与三维物理结构之间的鸿沟。 本解析将重点阐述Token-Mol的核心方法论,特别是其分子表征策略、模型架构与关键创新模块,并探讨其与通用大模型技术(如RAG)的潜在整合,为理解和借鉴其设计哲学提供深度视角。 核心方法:Token-Mol的分子表征哲学 Token-Mol的基石在于其独特的输入构建方式,它将复杂的分子信息完全转化为一个离散的词元(token)序列,使得标准的语言模型可以直接处理。 输入构建:融合2D与3D信息的“分子语言” 模型的核心思想是将一个带有三维构象的分子,编码为一个包含二维拓扑和三维几何信息的单一文本序列。这个过程如 图1a 所示,具体步骤如下: 获取二维拓扑信息 (SMILES): 输入:分子的二维连接性图。 处理 :首先,将分子结构转换为化学领域广泛应用的 SMILES(简化分子线性输入规范)字符串 4 。SMILES是一种用ASCII字符串明确描述分子结构的规范。 输出 :一串描述分子图的字符序列,例如 C1=CC(=CC(=C1)O)CN... 5 。这是最终序列的基础部分。 提取三维几何信息 (Torsion Angles): 挑战 :直接将原子的三维笛卡尔坐标(XYZ)作为输入,会导致序列过长且难以处理分子的旋转/平移不变性 6 。 Token-Mol的解决方案 :通过在分子的SMILES表示上进行 深度优先搜索(DFS)遍历 ,来提取决定其三维构象的 关键可旋转键的扭转角(Torsion Angles) 7 。扭转角是描述分子构象的核心内部坐标,具有旋转不变性。 输出 :一系列代表扭转角度数的连续数值,例如 [-0.20, 3.14, 2.18, ...] 8 。 整合为最终的“Token-only”表征: 处理 :将提取出的扭转角数值 也作为独立的词元 ,直接追加到SMILES字符串的末尾 9 。同样,分子的其他理化性质(如在性质预测任务中)也被处理成词元 1010 。 最终输入序列 :一个结合了SMILES和扭转角词元的长序列,能够同时表征分子的2D化学结构和3D空间构象 1111 。 设计哲学 :这种表征方式非常精妙,它 将决定分子3D构象的核心自由度(扭转角)从连续空间映射到了离散的词元空间 ,同时保留了描述2D化学结构的SMILES语言。这使得一个基于Transformer的标准语言模型架构,能够在一个统一的框架内同时“阅读”和“理解”分子的2D和3D信息 1212 。 Token-Mol的核心机制在于其创新的数据表示方式。它使用广泛接受的SMILES(简化分子线性输入规范)字符串来表示分子的2D连接性,即原子类型和化学键排布 。SMILES本身是一种成熟的化学语言,但它本质上缺乏3D空间信息 。为了弥补这一缺陷,Token-Mol引入了扭转角(torsion angles)作为3D构象的关键描述符 。扭转角描述了沿化学键旋转的构象自由度,是决定分子三维形状的核心内部坐标之一 。 该模型的实现流程是,首先通过深度优先搜索(DFS)遍历分子图,提取出所有可旋转键的扭转角。然后,将这些连续的扭转角数值进行离散化处理,并作为特殊的“扭转角令牌”附加到SMILES字符串的相应位置。最终形成一个混合序列,例如 C(C<120.5>)C,其中 <120.5> 就是一个代表特定扭转角度的令牌。这种方式巧妙地将2D拓扑(SMILES骨架)和3D几何(扭转角)编织成一种“3D注释的化学语言”,可以直接输入到Transformer解码器中进行自回归式学习 。 图1: Token-Mol总览。(a) 数据预处理流程,将分子的SMILES字符串与扭转角结合成单一的词元化表示 13。(b) 模型的预训练与微调工作流 14。(c) GCE损失函数的权重分配示意图 15。(d) 用于口袋生成任务的编码器与融合模块 16。 输入表征的优势与劣势 这种将SMILES与扭转角结合的“分子语言”是一种创新的折衷,具有独特的优缺点。 优势: 统一2D与3D信息 :最核心的优势在于,它成功地将2D拓扑信息(SMILES)和3D几何信息(扭转角)编码到一个单一的、离散的词元序列中,从而能够被标准的语言模型架构直接处理 17171717 。 兼容性与速度 :作为一种“纯词元化”模型,它与GPT等通用大语言模型的架构高度兼容,易于集成 18181818 。其推理速度极快,例如在分子生成任务中比基于几何的扩散模型快约35倍 191919191919191919 。 规避XYZ坐标的难题 :该方法避免了直接使用笛卡尔坐标(XYZ)带来的序列过长和缺乏旋转等变性的问题 20 。 ** bridging a gap**:Token-Mol的表征为分子表示范式提供了 第三条路径 ,有效连接了传统的2D序列模型(无法处理3D信息)和3D图模型(难以集成到通用LLM中) 21 。 生成更灵活的分子 :通过引入扭转角信息,模型能够生成比单纯基于2D信息的模型更柔性、更多样化的分子,以更好地适应不同形状的口袋 22 。 劣势与挑战: 对低频信息的学习不足 :模型在学习和准确预测那些 出现频率较低的扭转角 的分布时会遇到困难 23 。 数值敏感性有限 :尽管引入了GCE损失函数,但与基于图神经网络(GNN)的模型相比,Token-Mol对连续数值的敏感度仍然存在局限 24 。 结构有效性风险 :由于模型是自回归地生成序列,对扭转角数量或数值的预测不准确可能会导致最终生成的分子结构无效 25 。 对柔性分子的挑战 :分析表明,随着分子中 可旋转键数量的增加,所有评估指标的性能都呈下降趋势 26 。尽管Token-Mol在这种情况下依然表现出相对优势,但这仍然是一个固有的挑战 27 。 模型架构与训练策略 Token-Mol采用了一系列精心设计的策略来训练模型,以确保其能够从“分子语言”中学习到有用的知识。 模型骨干:Transformer解码器 架构 :模型基于一个包含 12层Transformer解码器 的架构,每层配备8个注意力头 28 。 自回归方法 :采用自回归(Autoregressive)方式进行训练和生成 29 。在训练时,通过掩码矩阵防止信息泄露 30 ;在生成时,模型逐个预测下一个词元,从而构建出完整的分子序列 31 。 关键创新1:随机因果掩码 (Random Causal Masking) 挑战 :传统的从左到右的因果掩码不适合“完形填空”式的任务,限制了模型的灵活性 32 。 Token-Mol的策略 :在预训练阶段,采用 随机因果掩码 策略 33333333 。它会从泊松分布中采样要掩盖的片段数量(1到6个),然后在序列中随机选择位置进行掩码 34 。被掩盖的内容会附加在序列末尾,由特殊词元引导模型进行预测 35 。 目的 :这种策略极大地增强了模型“填空”的能力,使其能适应更多样化的下游任务,例如在分子的特定位置进行修饰或补全 36 。 关键创新2:高斯交叉熵损失函数 (Gaussian Cross-Entropy Loss) 挑战 :传统的交叉熵损失函数主要用于离散分类任务,它对数值大小不敏感 37 。例如,在预测扭转角时,如果真实值是2°,那么预测成3°和80°所产生的损失是完全相同的,这显然不合理 38 。 Token-Mol的解决方案 :针对回归任务(如预测扭转角和分子属性),作者提出了 高斯交叉熵(GCE)损失函数 39393939 。 工作原理 (如图1c):对于每一个要预测的数值标签,GCE会构建一个 以该标签值为中心的高斯分布 40 。这样,离真实标签值越近的词元会被赋予越高的概率权重,而离得远的词元权重则较低 41 。 效果 :这种加权方式使得模型在训练过程中能够 学习到数值之间的相对关系 42 ,显著提升了其在回归任务上的表现。消融实验表明,缺少GCE会导致模型在回归任务上的平均RMSE增加约12% 43 。 下游任务:分子性质预测 分子性质预测是检验模型表征学习能力的关键。在Token-Mol的框架中,这不是预训练阶段的一部分,而是一个下游微调任务。 流程:模型首先在大型无标签分子数据集(GEOM)上进行预训练,学习通用的分子表征 44444444。然后,针对具体的性质预测任务,使用带有标签的特定数据集对模型进行微调(Fine-tuning) 45454545。 预测的性质:研究中评估了一系列分类和回归任务,数据集来源于MoleculeNet和TDC等基准平台 46。 分类任务 (Classification) : BACE :预测分子是否为β-分泌酶1(BACE1)抑制剂 47 。 BBBP (Blood-Brain Barrier Penetration):预测分子是否能穿透血脑屏障 48 。 ClinTox :预测药物是否因毒性而在临床试验中失败 49 。 SIDER :预测药物的副作用 50 。 Tox21 :预测化合物在12条毒性信号通路上的活性 51 。 ToxCast :预测化合物在数百种高通量筛选实验中的毒性 52 。 回归任务 (Regression) : ESOL :预测有机物在水中的溶解度 53 。 FreeSolv :预测小分子在水中的水合自由能 54 。 Lipophilicity :预测分子的亲脂性(油水分配系数) 55 。 Caco-2 :预测药物通过Caco-2细胞的渗透率,用以模拟肠道吸收 56 。 AqSolDB (Aqueous Solubility) :预测分子的水溶性 57 。 Acute Toxicity LD50 :预测化学物质的急性口服毒性(半数致死剂量) 58 。 注意力分析:为了验证模型的可解释性,研究者分析了模型在进行溶解度(ESOL)和毒性(LD50)预测时的注意力权重 59。结果显示,在预测溶解度时,模型会高度关注极性基团(如羟基、氨基)和疏水基团(如氯苯) 60;在预测毒性时,模型会准确地将高注意力分配给已知的毒性基团(toxicophores),如亚硝酰胺和磷酸三酯 61616161。这证明模型不仅能做出准确预测,其决策过程也与化学直觉相符。 核心模块深度解析:基于口袋的分子生成 Token-Mol通过引入特定模块来处理复杂的下游任务,尤其是基于口袋的分子生成。 口袋编码器与融合模块 (Pocket Encoder and Fusion Block) 任务:在给定蛋白质口袋信息的前提下,生成能与之结合的配体分子 62。 输入: 蛋白质口袋信息 :使用一个 预训练好的蛋白质口袋编码器 来提取口袋的3D结构和理化性质特征 63636363 。该编码器在Token-Mol微调阶段其参数被 冻结 ,仅作为特征提取器 64646464 。 部分生成的配体序列(在自回归过程中)。 模型设计与融合机制 (如图1d): 融合机制 :为了将口袋信息与正在生成的配体分子信息相融合,模型采用了一种 多头条件注意力(multi-head condition-attention)机制 6565656565656565 。 工作原理 :这与传统的交叉注意力有所不同。在这里,蛋白质口袋信息被视为一个 静态的“提示(Prompt)” 66666666 。在自回归生成配体的每一步中,注意力机制的 查询(Query)、键(Key)和值(Value)矩阵完全来源于已经生成的配体序列本身 67 。口袋的“提示”信息则被用来调节(condition)这个自注意力计算过程。 通俗解释:可以想象成,在写一个故事时,有一个固定的主题(口袋信息)放在旁边。在写每个新句子(生成新原子/键)时,你不仅要回头看自己已经写过的内容(已生成的配体部分),还要时刻瞟一眼那个主题,确保新写的内容与主题是相关的。这使得生成的分子在每一步都受到口袋环境的约束和引导,从而保证了其结构与目标口袋的高度匹配。 与强化学习(RL)的结合 目的 :针对特定目标(如最大化与某个靶点的结合亲和力),进一步优化生成的分子 68 。 可行性 :Token-Mol的自回归架构与强化学习框架天然契合,因为“生成一个词元”这个动作可以被看作是RL中的一个“行动(action)” 69 。 实施 :研究中使用了 REINVENT算法 对模型进行优化 70 。通过设计一个包含亲和力(Vina Score)和类药性(QED)的奖励函数,模型可以在满足约束条件(如类药性)的同时,逐步生成亲和力更高的分子 717171717171717171 。实验证明,通过RL优化,分子的Vina score得到了显著提升,平均值从-8左右优化到了约-9.5 72 。 未来展望:与通用大语言模型的融合 Token-Mol的“纯词元化”框架使其与前沿的通用大模型技术具有极佳的兼容性,为未来构建更强大的药物设计助手铺平了道路 73737373。 即时交互与提示学习 (Prompt Learning) Token-Mol可以像与ChatGPT对话一样进行交互 74 。通过设计特定的任务提示(如 Predict ESOL )并对模型进行微调后,用户可以直接向模型查询特定分子的性质,模型也能成功返回预测结果 75 。这展示了其作为 化学家对话伙伴 的巨大潜力 76 。 检索增强生成 (Retrieval-Augmented Generation, RAG) 论文明确指出了整合RAG的未来方向 77777777 。 工作流程设想 :当用户向Token-Mol查询一个分子的性质时,系统可以首先将查询(包含分子信息)转换为一个向量,然后在一个包含海量分子数据(如3D结构、其他理化性质、实验数据等)的 向量数据库 中进行检索 78 。 优势 :检索出的最相关的上下文信息,会与原始查询一起被输入到Token-Mol中 79 。这使得模型在生成答案时,不仅依赖其内部学到的知识,还能 参考外部数据库提供的、更丰富和准确的实时信息 ,从而极大地增强其预测的可靠性和信息的全面性。 总结 Token-Mol 1.0 是首个专为药物设计定制的“纯词元化”大型预训练语言模型 80。通过将分子的2D(SMILES)和3D(扭转角)信息统一编码为离散词元序列,并引入高斯交叉熵(GCE)损失函数来处理连续数值,它成功地让一个标准的Transformer架构能够同时理解和生成复杂的分子结构 81。其模块化的设计,以及与强化学习、RAG等前沿AI技术的天然兼容性,为开发“单一基础模型驱动的全面药物设计”提供了一条极具前景的道路 82。
Machine Learning & AI
· 2025-11-02
Boltz-2 vs. FEP? A False Dichotomy. Synergy is the Future
Boltz-2 vs. FEP?这是个伪命题。强强联合才是未来 作者:David “Dap” Pearlman 人工智能模型 Boltz-2 声称在配体亲和力预测方面取得了一些惊人的进步。但它最大的价值可能在于虚拟筛选和亲和力漏斗(Affinity Funneling)领域。 FEP 和 Boltz-2:携手并进! 人工智能/机器学习(AI/ML)的旋风从未停歇。如果你对各种消息都信以为真,会越来越觉得,我们距离用一个足够大的神经网络解决所有生物学难题,只差一篇惊天动地的新闻稿了。好了,收起你的白眼吧。尽管如此,刚刚发布的 Boltz-2 AI/ML 模型所做的声明——尤其是在预测配体与蛋白质的结合亲和力方面——确实引人入胜。 但空口无凭。让我们深入探究。 超越迭代:Boltz-2 带来了什么? 与其前身 Boltz-1 相比,这次的新迭代似乎是向前迈出的重要一步。作者报告称,其在各种分子类型(蛋白质、RNA、DNA-蛋白质复合物等五花八门)上的结构准确性都有所提高。他们特别强调了在抗体-抗原复合物这类出了名的棘手体系上取得的进展。 这些改进似乎部分归功于一些聪明的数据策略,例如使用“大型蒸馏集”(来自其他模型如 AlphaFold 甚至 Boltz-1 自身的高置信度预测)来创造更多的训练样本,特别是对于那些实验数据稀缺的体系,如 RNA 和 DNA-蛋白质复合物。Boltz-2 还着力在训练集中加入了更多的动态信息。它不再局限于 PDB 数据库中静态的晶体学“快照”,而是整合了 NMR 谱学系综和分子动力学(MD)模拟数据。这使得它能够预测并使用像 B-因子(B-factors)这样的性质进行训练,并能根据实验方法类型(如 X 射线、NMR 或 MD)来生成特定条件的结构。此外,它在施加距离约束和多聚体模板方面的功能也有所改进。而且,也许最棒的是,和 Boltz-1 一样,它是开源的,代码和权重都免费提供,这极大地激励了学术界和生物技术界的创新与验证。 入局挑战:Boltz-2 与 AlphaFold3 的阴影 尽管 AlphaFold3 为结构预测领域划下了一条新的起跑线,并声称可以预测配体/蛋白质的结构,但它在评估一组配体的相对结合能力方面并没有提供太多帮助。Bolt-1 也是如此。而这正是 Boltz-2 可能改变游戏规则的地方。当然,它也必将引发巨大的关注。 亲和力的诱惑:为何 Boltz-2 的声明如此引人注目? 这正是 Boltz-2 做出其最大胆声明的地方,也是其论文中所描述的结果“如此诱人”的原因。以 AI 模型的速度获得相当准确的配体结合亲和力估值,这一前景有望为那些可以为了通量而牺牲部分准确性的工作流程带来颠覆性的改变。特别是,计算药物发现领域一直缺少能够处理虚拟筛选活动后产生的数千个多样性化合物的解决方案——这个数量对于今天的计算资源来说,即使是绝对自由能微扰(FEP)也太多了,而快速打分函数(如对接分数、MM/GBSA 等)又无法对它们进行有效排序。作者声称,Boltz-2 “在计算效率上比 FEP 至少高出 1000 倍”,同时在某些基准测试中的表现接近 FEP。他们选对了目标:FEP/TI(热力学积分)无疑是我们目前拥有的用于高精度结合评估的最佳计算工具。 论文展示了一些引人注目的图表。也许最亮眼的就是在 FEP+ 基准测试集的 OpenFE 子集上的结果,其中 Boltz-2 的表现接近 FEP 本身,Boltz-2 的皮尔逊 R² 为 0.38,而 OpenFE 为 0.40,FEP+ 为 0.52(我冒昧地将论文中的 R 值转换为了 R²,因为这是现代自由能文献中更常见的度量方式)。他们还在最近的 CASP16 亲和力挑战赛的化合物上展示了同样诱人的好结果。但必须指出,尽管 Boltz-2 的预测令人印象深刻——考虑到 1000 倍的速度提升,甚至可以说是惊人的——它与 FEP+ 之间的差异仍然相当显著,特别是考虑到 FEP 在药物发现中的应用方式——下文将详细阐述。 但我们别高兴得太早:FEP 并未过时 毫无疑问,Boltz-2 很酷。但在我们开始质疑为何还要做 FEP 之前,让我们先戴上怀疑者的帽子。每个科学家都需要一顶这样的帽子,尤其是在驾驭 AI/ML 炒作这片时常波涛汹涌的水域时。值得称赞的是,Boltz-2 的论文对其目前的局限性保持了相当的透明度。 我认为,这里最大的警示信号是作者报告的,当试图将 Boltz-2 应用于来自其合作伙伴 Recursion 的八个盲测配体/靶标数据集时的结果。对于这些数据集,他们仅在三个集合上实现了皮尔逊 R² > 0.30,而在其他五个集合上表现“有限”。每个集合都包含数百个实验测定点,总体而言,对于这八个集合,平均皮尔逊 R² = 0.15,平均肯德尔 Tau 仅为 0.23。这些数值虽然显著优于其他机器学习方法在这些集合上的表现(如 GAT, BACPI),但对于许多实际应用场景来说,这样的 R² 值实在是太低了。这些在真实的 Recursion 数据集上的结果让人不禁怀疑,在那些预测效果较好的测试/验证集和训练数据之间,是否存在着微妙的数据泄漏——尽管论文作者描述了他们通过排除与验证/测试集有 ≥ 90% 相似性的蛋白质来防止明确泄漏的努力。 图14 来自 Passaro 等人的论文《Boltz-2:迈向准确高效的结合亲和力预测》。这些图表展示了 Boltz-2 在 Recursion Pharmaceuticals 提供的八个未发表的盲测数据集上的预测与实验行为。其中大多数缺乏可指导行动的相关性,这令人警醒。 与 FEP 方法相比,Boltz-2 的一个主要局限性在于它仍然依赖于蛋白质受体位点的结构。与 FEP 和 TI 等自由能方法不同,这种打分方法无法调整结合位点以适应起始配体/蛋白质构象中的微小问题。它也无法反映结合位点为适应不同结合物而进行的调整。因此,尽管这个 AI/ML 模型相当复杂,但归根结底,它仍然建立在那个曾让许多其他打分方法停滞不前的“锁-钥模型”之上。(Boltz-2 试图通过在模型拟合过程中整合动态信息来部分缓解这个问题。)这可能已经接近了该模型所能达到的极限(嘿,对于相对评估来说,它已经比传统的对接分数好太多了!),但到某个点,你终究得为蛋白质的柔性买单。而一旦你这么做,你的计算成本很可能会上升几个数量级,然后,哇哦!你又回到了 FEP 的领域。 Boltz-2 的第二个严重局限性是,它没有包含对溶剂(水)、金属、离子或辅因子的显式模型(溶剂是隐式处理的)。对于许多体系来说,这种简化是个非常、非常糟糕的大问题。作为一名工业界的计算化学家,你只能接受现实,如果你正在研究的体系的结合是由这些因素中的任何一个介导/控制的(很多体系都是如此),那么 Boltz-2 可能帮不了你。但值得注意的是,CASP16 挑战集中的几个体系确实包含了辅因子,而 Boltz-2 在这些体系上似乎表现得相当不错。所以现实情况可能会更微妙,且依赖于具体体系。 Boltz-2 能否解决对接的“漏斗”根本问题? 话虽如此,即使是像我这样在这个领域里cynical old timer,也不禁感到好奇。与其说它能取代 FEP 用于苗头到先导化合物的后期优化,不如说它提供了一种可能在虚拟筛选漏斗的底部提供增量价值的方法,而目前没有任何方法能在该阶段提供必要的准确性和速度组合。(参见 Sindt, Bret, 和 Rognan 最近发表的优秀论文。)在那个阶段应用一种有信号的方法的神奇之处在于,你仍然在玩一个大数游戏,你不必每次都对——你只需要在总体上是正确的,并且能够可靠地富集从(比如说)10,000个化合物到几百个化合物的苗头数量。论文中对此的可行性进行了一些论证,首先是在先前发表的 MF-PCBA 基准测试上(Boltz-2 在此取得了不错的富集效果),然后是通过比较 Boltz-2 如何对潜在的 TYK2 结合物进行打分,这些结合物既包括随机分子,也包括被特别鉴定为具有良好结合能力的分子(来自各种公共来源和他们自己的 SynFlowNet 方法)。经验上,Boltz-2 对非随机化合物的总体排名更好。在对这些化合物的绝对结合自由能计算与 Boltz-2 进行更严格的比较中,获得了 R² = 0.55 的良好相关性。如果这种可靠性能被广泛证实,这将成为一种改变游戏规则的、用于虚拟筛选的重打分方法。 然后是亲和力漏斗(Affinity Funneling):Boltz-2 和 FEP 携手合作 虽然虚拟筛选漏斗是药物化学家最熟悉的,但在药物化学家和计算化学家之间,价值链的更下游还有另一个漏斗。药物化学家非常擅长快速提出想法,而一个优秀的药物化学家可以轻易地提出超出计算化学家现有评估能力的想法数量。因此,我预计 Boltz-2 也将在这里介入这个过程。我正在构想一个工作流程——我称之为“亲和力漏斗”(Affinity Funneling)——化学家带着一长串想法进来,Boltz-2 被用来将其筛选成一个更短的列表,使其与在要求的时间内可用于 FEP 的资源相匹配,然后将 FEP 应用于这个缩减后的列表以获得更可靠的结果。如果这行得通,它可以将当前的模式(化学家的想法清单通常相对较小)转变为一种新模式,即由药物化学家发起的更广泛的自动化枚举(例如“在所有这些 R 位点上进行卤素和甲基取代的所有组合”)输入到 Boltz-2 中,然后最好的结果再通过 FEP 进行计算。Boltz-2 和 FEP 之间的协同作用甚至可能增加 FEP 的整体价值和使用率。不是对抗,而是合作的力量!这种 AI + 物理的混合模式,正如同机器学习正在增强材料科学和气候建模等领域一样。 如果 Boltz-2 在分流筛选中继续显示出信号,它将适用于虚拟筛选和亲和力漏斗工作流程,如图所示。两者都是高价值的应用,而 Boltz-2 催生的新“亲和力漏斗”工作流程可能会增加 FEP 的使用,因为它能将可用的 FEP 计算管线与药物化学家的最大创意产出速率相匹配,同时解放药物化学家进行更广泛的组合思维。 盘点:Boltz-2 最终可能的位置 那么,Boltz-2 在宏伟蓝图中处于什么位置?它似乎是 Boltz-1 的一个显著进步,并且在结合亲和力和模型可控性等领域提出了可信的挑战,旨在相对于 AlphaFold3 和其他竞争者开辟自己的生态位。快速、合理准确的结合亲和力估算的潜力确实引人注目,并可能显著加速药物发现马拉松的某些阶段。 我们或许真的有了一个可以应用于虚拟筛选漏斗底部的工具,这个想法非常令人兴奋,同样令人兴奋的还有参与“亲和力漏斗”的潜力。这些是我将密切关注的应用。 另一方面,作为一种在苗头到先导化合物的后期优化过程中取代 FEP 或 TI 等自由能工具的工具?我看不到 Boltz-2 能取得巨大进展。要理解为什么,你需要考虑这些方法是如何被使用的。FEP(或 TI)通常应用于项目的实验阶段,化学家可能会提出几个(或几十个)想法,然后问:“我有这些想法。我只有几天时间来合成几个。你建议我做哪些?”为了有把握地回答这样的问题,我们需要依赖这样一个事实:现代 FEP 计算通常能精确到 1 kcal/mol 或更好,并伴随着通过 ROC 分析等衡量的相应富集效果。从 FEP 计算被引入至今,我们花了整整 40 年时间,才让采样和力场发展到让化学家和建模者都感到足够放心的地步,认为我们可以以适当的可靠性水平回答这些问题。Boltz-2 的结果,虽然在抽象层面上令人印象深刻,但无疑是一个巨大的退步。对于 OpenFE 基准测试,这是从 R² = 0.52 下降到 0.38。(是的,R² 是一个很差的指标,但在这个范围内如此大的差异通常是实质性的。)对于一个成功依赖于这些结果的化学家来说,这很容易就是“有趣,请继续”和“抱歉,下一个”之间的区别。 毫无疑问,有些人会看到这些充满希望(但较差)的结果,然后想:“我们快成功了。”但我们怎么才能更进一步呢?Boltz-2 已经吞噬了作者能找到的所有结合数据,但受限于 Landrum 和 Riniker 在其论文中戏剧性呈现的不同来源数据的可重复性问题。高质量的实验配体结合数据(IC50、Ki 等)严重落后于配体/受体相互作用的广阔空间,而且这种情况短期内不太可能改变(除非用[合成的]计算结合数据来增强)。AI/ML 还受困于众所周知的可解释性问题,这使得找出需要什么来改进预测变得模糊不清。因此,情况更可能是“我们不只是快到了,我们几乎已经走到了路的尽头”——至少在数据生成或模型架构出现新突破之前是这样。事实上,Boltz-2 的作者自己也承认,解决当前的局限性“将需要在扩展和整理训练数据、改进模型架构以及整合额外的生化背景方面进行未来的工作。”当然,这些都是整个 AI 领域的活跃研究领域,但它们在亲和力预测这个复杂问题上的应用仍然是一个前沿领域。 如果是这样的话,那么,FEP 领域仍然有巨大的改进空间,特别是在更好的力场和更好的采样方面。对于前者,我一直在 QSimulate 参与一项将量子力学带入主流的努力,我们基于 QM/MM 的 FEP 现在已经成为现实,它拓宽了 FEP 计算的适用范围和准确性,超越了即使是最好的经典力场所能达到的水平。通过更快的 GPU 和巧妙的实现思路,采样也在持续改进。与 AI/ML 相比,基于物理的方法的美妙之处在于,我们可以识别缺点并专注于改进它们。 一个强大的工具,如果你知道该指向何方 与所有新工具一样,实践是检验真理的唯一标准——在独立验证中,在真实世界的应用中,以及在它如何应对该领域不可避免地转向下一个大事件时。Boltz-2 最大的影响可能不是作为高精度方法的直接替代品,而是在被巧妙地应用于弥合快速对接打分和更严格的自由能方法之间的差距时,例如用于虚拟筛选苗头化合物的分流筛选,或用于评估那些将要用更准确(但更慢)的 FEP 进行评估的配体。“亲和力漏斗”甚至可能导致对 FEP 的需求增加! 当然,一个大问题依然存在:如果额外结合数据的稀缺性和锁-钥模型意味着我们正在接近静态 AI 受体-配体打分模型所能达到的极限,那么下一次飞跃将来自何方?我相信未来的改进将来自于 AI/ML 技术与那些经过数十年发展和完善的基础性、基于物理的方法之间的智能协同。Boltz-2 的开源性质,以及为特定感兴趣的目标谨慎地向训练集中添加数据的能力,可能使得即使在基础模型在你有(或使用基于物理的方法生成)大量相同或相似系统上的额外数据的情况下信号有限时,也能改进 AI 模型。这表明,即使 Boltz-2 最初在某个目标上表现不佳,通过定制训练和额外数据,进一步的改进也是可能的。 毫无疑问,这是一个激动人心的时代。真正的力量不在于取代数十年的基础科学,而在于智能地整合像 Boltz-2 这样的 AI 工具来开启新的前沿。拥抱这种协同作用以及用目标数据改进模型的能力,才是我们能够现实地期望在长期内加速药物发现的方式。AI 创新与物理理解之间的这种迭代之舞,才是真正突破将要涌现的地方。
Machine Learning & AI
· 2025-11-02
机器学习赋能药物发现:四款实用工具与方法全解析
机器学习赋能药物发现:四款实用工具与方法全解析 引言 机器学习势能(MLP)和人工智能正在深刻改变药物发现和材料科学领域。从分子动力学模拟到虚拟筛选,从力场开发到模型可解释性分析,研究者们不断开发新工具来提升计算效率、增强预测准确性、改善模型透明度。本文将介绍四项近期发表的重要工作,涵盖数据管理、力场转换、模型优化和性质预测等多个关键环节。 一、dpdata:可扩展的原子机器学习数据集工具包 本文信息 标题: dpdata: A Scalable Python Toolkit for Atomistic Machine Learning Data Sets 作者: Jinzhe Zeng, Xingliang Peng等(中国科学技术大学、北京大学等) 发表时间: 2025年 单位: 中国科学技术大学、北京大学、AI for Science Institute等 引用格式: Zeng, J., Peng, X., Zhuang, Y.-B., et al. (2025). dpdata: A Scalable Python Toolkit for Atomistic Machine Learning Data Sets. J. Chem. Inf. Model. https://doi.org/10.1021/acs.jcim.5c01767 源代码: https://github.com/deepmodeling/dpdata 核心问题 机器学习势能的成功高度依赖于大规模、高质量的参考数据集。然而,不同软件包采用异构的文件格式和数据模式,严重阻碍了互操作性: 电子结构和分子动力学软件使用各自的输入/输出格式 MLP训练数据通常采用extended XYZ、NumPy数组、pickle、ASE数据库、HDF5等格式 即使格式相同,各软件包的数据模式和单位约定也常常不同 dpdata的解决方案 核心设计理念 dpdata是一个开源Python库,采用灵活的插件式架构,支持在广泛的文件格式之间进行读取、写入和转换。与ASE等工具不同,dpdata设计为在系统级别而非逐个构型操作数据,显著提升了内存效率和推理速度。 关键功能 格式支持广泛: MLP包:DeePMD-kit、QUIP GAP、MACE、NequIP、GPUMD、n2p2 MD软件:LAMMPS、AMBER、GROMACS 量子化学:ABACUS、OpenMX、Gaussian、FHI-aims、VASP、Quantum ESPRESSO等 通用格式:XYZ、MOL、SDF、ASE、Pymatgen 数据处理工具: 自动train-test分割 坐标扰动(用于主动学习) 异常能量去除 Δ-learning数据集生成 误差指标计算 单位转换 插件扩展性: 用户可定义自定义数据类型、格式、驱动和最小化器 示例:dpdata_abinit、cp2kdata、dpdata_ani 性能优势 内存效率对比:加载QDπ数据集(1,460,161个构型,1.85 GB) dpdata: 1.93 GB ASE: 7.47 GB(约4倍差距) 推理加速对比(dpdata driver vs ASE calculator) Water数据集: 4-8倍加速 Copper数据集: ~6倍加速 HEA数据集: ~4倍加速 dpdata的系统级设计允许并行处理多个构型,而ASE按顺序逐个处理。 实际应用 dpdata已被多项研究用于: 格式转换:将DFT/AIMD输出转换为MLP所需格式 数据存储:以dpdata兼容格式共享数据 坐标扰动:丰富训练集多样性 项目集成:DP-GEN、ChecMatE、PFD-kit、CatFlow、APEX、PyHEA等 二、gmx_ffconv:GROMACS全原子力场快速转换工具 本文信息 标题: gmx_ffconv: A Fast, User-Friendly Semi-Automated All-Atom Force Field Converter for GROMACS 作者: Jasmine E. Aaltonen(Lancaster大学) 发表时间: 2025年 单位: Lancaster大学化学系(英国) 引用格式: Aaltonen, J. E. (2025). gmx_ffconv: A Fast, User-Friendly Semi-Automated All-Atom Force Field Converter for GROMACS. J. Chem. Inf. Model., 65, 9850-9855. https://doi.org/10.1021/acs.jcim.5c02200 源代码: https://github.com/Jassu1998/gmx_ffconv 核心问题 GROMACS力场转换通常是耗时且易错的过程: 不同力场采用各自的命名约定和原子排序 GROMACS要求坐标文件中的原子顺序必须与拓扑文件严格匹配 即使像DPPC这样的标准脂质,也无法直接通过pdb2gmx从AMBER Lipid21转换到CHARMM36 现有工具的局限: CHARMM-GUI Force Field Converter:需要CHARMM输入文件,仅支持AMBER和CHARMM pdb2gmx:需手动修改残基拓扑文件(.rtp),确保坐标文件语法匹配 gmx_ffconv的解决方案 工作原理 gmx_ffconv通过分子图匹配解决原子排序和命名不匹配问题,包含两个核心工具: ffmap:通过图同构找到两个力场间的映射 从ITP文件读取原子和键信息 根据原子质量识别化学元素(误差容忍度±0.3 amu) 构建标记图(原子=节点,键=边) 使用NetworkX的VF2算法进行图同构匹配 groconv:根据映射重新排列坐标文件 读取原始GRO文件 按用户指定的分子类型和数量重组 自动重命名残基和重新编号以匹配新力场 输出重排的GRO文件 验证系统 系统 分子类型 分子数 总原子数 苯乙酸 BZAA 1 18 病毒膜 CHL, DPPC等 675,234 2,270,122 人血清白蛋白(HSA) PROA, PROB 2 18,246 糖基化SARS-CoV-2刺突蛋白 PROA-C 3 72,990 性能表现 时间成本(秒): 分子 CHARMM → AMBER AMBER → CHARMM BZAA 0.10 0.10 CHL 0.10 0.10 DPPC 65.48 0.11 DOPE 60.02 0.33 注意:某些方向的转换可能快数百倍(如DPPC),这取决于节点排序如何影响VF2算法的搜索过程。 病毒膜系统转换: ffmap总时间(顺序): 207.92秒 ffmap总时间(并行): 71.31秒 groconv时间: 4.47秒 使用场景 力场验证:使用相同起始坐标比较不同参数化或力场 系统转换:轻松转换文献中的预平衡系统到偏好力场 一致性名称(v1.0.3+):通过CSV文件确保原子名称在力场间一致 局限性 不支持水模型转换(3点 ↔ 4点模型) 质子化状态必须一致(不支持互变异构体) 双硫键等特征仅在两个拓扑都存在时支持 三、通过SHAP和特征分析改进机器学习分类预测 本文信息 标题: Improving Machine Learning Classification Predictions through SHAP and Features Analysis Interpretation 作者: Leonardo Bernal, Giulio Rastelli, Luca Pinzi(Modena and Reggio Emilia大学) 发表时间: 2025年 单位: 意大利Modena and Reggio Emilia大学生命科学系 引用格式: Bernal, L., Rastelli, G., Pinzi, L. (2025). Improving Machine Learning Classification Predictions through SHAP and Features Analysis Interpretation. J. Chem. Inf. Model. https://doi.org/10.1021/acs.jcim.5c02015 核心问题 树基机器学习算法(ET、RF、GBM、XGBoost)在早期药物发现中广泛应用,但常面临: 误分类问题:假阳性/假阴性影响虚拟筛选效率 可解释性不足:难以理解预测背后的化学机制 传统置信度过滤的局限: predict_proba阈值过滤会丢弃大量化合物 无法检测到具有高置信度但实际错误的”局部误分类” 创新方法:SHAP与特征值联合分析 研究设计 在三个前列腺癌细胞系(PC3、DU-145、LNCaP)的ChEMBL抗增殖数据上开发分类器: 算法:ET、RF、GBM、XGBoost 特征:RDKit描述符、MACCS keys、ECFP4指纹、custom-fragments 最佳模型性能 数据集 最佳模型 MCC F1-score DU-145 ET/GBM-RDKit 0.60 0.83 PC3 XGB-ECFP4 0.64 0.86 LNCaP GBM/XGB-RDKit 0.62 0.88 误分类检测框架 研究发现:误分类化合物的特征值(”RAW”)和SHAP值常落在相反类别的范围内。 基于此,开发了四种标记规则: “RAW”规则:化合物的RAW特征值落在相反类别范围内的数量超过阈值 “SHAP”规则:SHAP值落在相反类别范围内的数量超过阈值 “RAW OR SHAP”:满足任一条件即标记(高灵敏度) “RAW AND SHAP”:同时满足两个条件才标记(高精度) 阈值定义:采用分层分位数方法 \[T_{\text{glob}}(M) = \text{quantile}_p(M_{\text{correct}})\] \[T_C(M) = \text{quantile}_p(M_{\text{correct in C}}), \quad \text{if } |C| \geq 3\] 其中 $M$ 是”相反类别范围内的特征数量”,$p$ 通常选择80-th或85-th分位数。 检测效果 在50%预测置信度下检测到的误分类化合物百分比: 数据集 RAW SHAP RAW OR SHAP RAW AND SHAP LNCaP 48.6% 46.2% 63.6% 31.2% PC3 19.0% 7.5% 20.7% 5.8% DU-145 21.5% 21.7% 24.9% 18.3% 与置信度阈值协同 随着predict_proba阈值从50%提升到90%,标记规则的效果进一步增强: PC3(RAW OR SHAP):移除误分类从21% → 29% DU-145(RAW OR SHAP):24.9% → 41.9% LNCaP(RAW OR SHAP):63.6% → 70.4% 实际意义 虚拟筛选优化:在大型化合物库筛选中,最大化灵敏度以识别边界化合物 二次筛选精炼:在聚焦筛选中,使用高精度规则保留真阳性 特征可解释性:误分类化合物显示的关键描述符(如”EState_VSA1”、”SMR_VSA6”)为结构优化提供洞察 四、图论+机器学习:用拓扑指数预测抗病毒药物性质 本文信息 标题: A Graph-Based Machine Learning Framework for Predicting Physicochemical Properties of Antiviral Drugs via Topological Indices 作者: Irfan Haider, Muhammad Ahsan等(巴基斯坦COMSATS大学等) 发表时间: 2025年 单位: COMSATS大学(巴基斯坦)、印度中央大学、中东技术大学(塞浦路斯)等 引用格式: Haider, I., Ahsan, M., Siddiqui, M. K., et al. (2025). A Graph-Based Machine Learning Framework for Predicting Physicochemical Properties of Antiviral Drugs via Topological Indices. J. Chem. Inf. Model. https://doi.org/10.1021/acs.jcim.5c00117 源代码: https://github.com/IrfanHaider/graph_based_antiviral_drugs.git 创新框架:两阶段机器学习 传统QSPR方法直接从分子结构预测性质,本研究引入拓扑指数作为中间桥梁: 阶段一:SMILES → 拓扑指数 输入:SMILES字符串 输出:六种拓扑指数(M1、M2、ABC、Randić、Harmonic、Forgotten) 方法:RDKit解析分子图,ML模型预测指数 阶段二:拓扑指数 → 理化性质 输入:预测的拓扑指数 输出:六种性质(摩尔折射率、极性表面积、极化率、摩尔体积、分子量、复杂度) 模型:四种ML算法比较 拓扑指数定义 First Zagreb (M1): \[M_1(G) = \sum_{v \in V(G)} d_v^2\] 反映分子的整体连接性和分支度。 Second Zagreb (M2): \[M_2(G) = \sum_{uv \in E(G)} d_u d_v\] 捕捉相邻原子的连接特征。 ABC指数: \[\mathrm{ABC}(G) = \sum_{uv \in E(G)} \sqrt{\frac{d_u + d_v - 2}{d_u d_v}}\] 与分子稳定性和应变能相关。 Randić指数: \[R(G) = \sum_{uv \in E(G)} \frac{1}{\sqrt{d_u d_v}}\] 反映分子的分支程度。 Harmonic指数: \[H(G) = \sum_{uv \in E(G)} \frac{2}{d_u + d_v}\] 与分子的电子性质相关。 Forgotten指数: \[F(G) = \sum_{v \in V(G)} d_v^3\] 对高度顶点赋予更大权重,适用于复杂结构分子。 预测性能 阶段二:理化性质预测 性质 最佳模型 $R^2$ 分子量(MW) XGBoost 0.9950 极化率(P) 神经网络 0.9891 摩尔折射率(MR) 线性回归 0.9863 摩尔体积(MV) 随机森林 0.9732 关键发现 M1和Forgotten与MW、P、MR的相关系数超过0.95 XGBoost和随机森林显著优于线性回归 极性表面积(PSA)预测较难($R^2$=0.4242) 优势与局限 优势 降低复杂度:每阶段输入输出维度低 提高可解释性:拓扑指数有明确化学意义 模块化设计:两阶段可独立优化 计算效率:相比量子化学计算极低成本 局限性 数据集规模小:59个样本限制泛化能力 缺乏3D信息:忽略立体化学和构象效应 PSA预测不佳:度基指数对极性特征表征能力有限 总结与展望 本文介绍的四项工作展示了机器学习和计算化学工具链的不同环节: 工具定位 工具 功能 适用场景 dpdata 数据管理与转换 MLP开发、大规模数据处理 gmx_ffconv 力场快速转换 比较模拟、系统迁移 SHAP+特征分析 模型优化与误分类检测 虚拟筛选、模型可解释性 图论ML框架 性质预测 抗病毒药物设计、QSPR建模 共同趋势 效率优先:dpdata实现4倍内存节省,gmx_ffconv秒级转换复杂系统 可解释性:SHAP分析不仅解释模型,还能主动改进预测 插件化设计:dpdata和gmx_ffconv均支持用户扩展 实用导向:所有工具均开源,提供详细文档和示例 未来方向 工具整合:将dpdata用于MLP数据管理,gmx_ffconv用于多力场验证,SHAP用于模型诊断 深度学习融合:图神经网络替代ECFP4以减少比特碰撞,提升拓扑指数预测 主动学习:结合SHAP标记和dpdata坐标扰动,优化训练集采样 跨尺度建模:从拓扑指数到全原子MD,再到粗粒化模拟的无缝衔接 参考资源 dpdata文档:https://docs.deepmodeling.com/projects/dpdata gmx_ffconv教程:https://github.com/Jassu1998/gmx_ffconv SHAP官方文档:https://shap.readthedocs.io 这些工具的出现标志着计算化学和药物发现正在向自动化、智能化、可解释化方向发展,为研究者提供了更高效的武器库。
Machine Learning & AI
· 2025-11-02
炼丹师速成指南:深度学习分子属性预测的超参数优化方法学
炼丹师速成指南:深度学习分子属性预测的超参数优化方法学 本文信息 标题: 用于高效精确分子属性预测的深度神经网络超参数调优方法学 作者: Xuan Dung James Nguyen, Y.A. Liu 发表时间: 2024年11月14日 单位: 弗吉尼亚理工学院暨州立大学, 化学工程系 (美国) 引用格式: Nguyen, X. D. J., & Liu, Y. A. (2025). Methodology for hyperparameter tuning of deep neural networks for efficient and accurate molecular property prediction. Computers and Chemical Engineering, 193, 108928. https://doi.org/10.1016/j.compchemeng.2024.108928 O’Malley, T., Bursztein, E., Long, J., Chollet, F. Keras documentation: KerasTuner. https://keras.io/keras_tuner/ (accessed 20 March 2024). 摘要 本文提出了一套用于分子属性预测 (MPP) 的深度神经网络超参数优化 (HPO) 方法学。以往大多数将深度学习应用于MPP的研究仅对HPO给予了有限的关注,从而导致预测属性的精度未能达到最优。为了提高MPP深度学习模型的效率和准确性,我们必须尽可能多地优化超参数,并选择一个能够支持并行执行HPO的软件平台。我们在Keras Tuner和Optuna软件包中,比较了随机搜索、贝叶斯优化、Hyperband算法以及贝叶斯-Hyperband组合在HPO中的表现。我们的结论是,以往MPP研究中未曾使用过的Hyperband算法,在计算效率上是最高的;同时,它在预测精度方面能给出最优或接近最优的MPP结果。基于我们的案例研究,我们推荐使用Python库 KerasTuner 进行HPO。 核心结论 HPO至关重要:系统性的超参数优化能够显著提升深度学习模型在分子属性预测任务上的准确性,相比默认或手动设置的参数,RMSE可降低数倍。 Hyperband算法胜出:在多种HPO算法(随机搜索、贝叶斯优化、Hyperband、BOHB)的比较中,Hyperband算法在计算效率上遥遥领先(快2至9倍),同时其预测精度通常能达到最优或接近最优的水平。 工具平台推荐:对于广大化学工程师和科研人员,KerasTuner 是一个功能强大、用户友好且易于上手的HPO Python库,它支持并行化,并内置了包括Hyperband在内的多种先进算法。 BOHB组合算法的权衡:尽管理论上更先进的贝叶斯-Hyperband组合算法 (BOHB) 在某些情况下能带来极其微小的精度提升,但其付出的计算时间成本显著增加,因此在本文的案例中并不具备性价比优势。 背景 近年来,机器学习 (ML),特别是深度神经网络 (DNN),在化学、材料和制药领域掀起了一场革命。利用这些强大的数据驱动模型,科学家们能够以前所未有的速度和精度预测分子的各种关键性质,如药物活性、材料的熔融指数、聚合物的玻璃化转变温度等,这一领域被称为分子属性预测 (MPP)。精准的MPP模型不仅能加速新药的发现和新材料的研发进程,还能显著降低实验成本。 然而,构建一个高性能的DNN模型并非易事,它如同一个复杂的“黑箱”,其内部包含了大量需要预先设定的“旋钮”——即超参数 (Hyperparameters)。这些参数,如网络的层数、每层的神经元数量、学习率、激活函数的选择等,共同定义了模型的结构和训练方式。它们的组合方式千变万化,不同的组合对模型最终的性能有着天壤之别的影响。手动“炼丹”调参不仅耗时耗力,而且往往带有很大的盲目性,很难找到最优解。 尽管超参数优化 (HPO) 的重要性已在机器学习领域成为共识,但在许多MPP的应用研究中,这一关键步骤却常常被忽视或简化处理。研究者们往往沿用文献中的“经验值”或仅对少数几个参数进行粗略调整。这种做法导致许多已发表的MPP模型的潜力未能被完全发掘,其预测精度远非其能达到的上限。因此,当前领域迫切需要一套系统、高效且易于实践的HPO方法学,以指导科研人员如何为他们的MPP任务构建最优的DNN模型。 关键科学问题 本文旨在为化学与材料领域的科研人员,特别是那些不具备深厚计算机科学背景的研究者,解决一个核心的实践问题:如何系统、高效地对用于分子属性预测的深度神经网络进行超参数优化,以在合理的计算时间内获得最高的预测精度? 为了回答这个宏观问题,作者将其分解为三个具体的、可操作的子问题: 算法比较:在现有的主流HPO算法中——随机搜索、贝叶斯优化和Hyperband,以及它们的组合——哪一种在MPP任务上能最好地平衡计算效率(时间成本)和预测准确性? 平台选择:市面上有多种支持HPO的软件库,哪一个平台是免费、用户友好、功能强大且支持并行计算的,最适合广大科研工作者快速上手? 方法学构建:能否提炼出一套一步一步的、清晰的方法论和实践见解,让一个初学者也能利用推荐的平台和算法,为自己的MPP问题成功地进行超参数调优? 通过对这些问题的深入探讨,本文的目标是填补从“知道HPO很重要”到“知道如何做好HPO”之间的巨大鸿沟。 创新点 系统性算法评估:首次在分子属性预测的背景下,对随机搜索、贝叶斯优化、Hyperband以及BOHB(贝叶斯与Hyperband的组合)等多种主流HPO算法的计算效率和预测精度进行了全面的、并排的比较。 发现并推荐Hyperband:研究发现,之前在MPP领域鲜有报道的Hyperband算法具有最高的计算效率,同时能达到最优或接近最优的预测精度,并基于此强烈推荐该算法。 提供实用工具与流程:为化学工程师和材料科学家推荐了KerasTuner和Optuna这两个用户友好的开源Python库,并提供了详细的分步方法论和Python代码,极大地降低了实施高级HPO的技术门槛。 量化HPO的巨大价值:通过两个具体的案例研究,明确量化了系统性HPO带来的巨大性能提升。与未经优化的基准模型相比,优化后的模型预测误差(RMSE)降低了6到8倍,准确率显著提高,强有力地证明了HPO是构建高性能MPP模型不可或ō缺的一步。 研究内容 方法详述:超参数优化的“武器库”与“靶场” 本文的核心是评估不同的HPO策略。作者首先选择了“武器”(HPO算法和软件平台),然后搭建了“靶场”(两个典型的MPP案例)来进行实证比较。 HPO算法与软件平台 表2:以往MPP研究和本研究中使用的HPO算法与软件平台 文献 HPO方法 软件平台 Chen and Tseng (2022) 贝叶斯优化 Hyperopt Held et al. (2024) 随机采样后接TPE算法 Chemprop 本研究 随机搜索,贝叶斯优化,Hyperband,以及BOHB KerasTuner,Optuna 作者选择了两个功能强大且广受欢迎的Python库: KerasTuner:因其直观、用户友好且易于编码而被选为主要平台,特别适合非计算机专业的科研人员。它内置了多种HPO算法,并且支持并行化以显著加速调优过程。 Optuna:作为一个补充平台,主要用于实现KerasTuner不支持的BOHB算法(贝叶斯优化与Hyperband的组合)。 本文比较了四种核心的HPO算法: 随机搜索 (Random Search):在预定义的超参数空间中随机抽样组合进行测试。 贝叶斯优化 (Bayesian Optimization):一种“智能”搜索方法。它会根据已测试点的表现,建立一个概率代理模型来预测哪些超参数组合可能会带来更好的性能,从而更高效地集中探索有希望的区域。 Hyperband:一种基于资源分配的快速算法。它采用“逐次减半 (successive halving)”策略:一开始用少量资源(如少量epochs)训练大量超参数组合,然后淘汰掉表现差的一半,再将更多资源分配给表现好的“幸存者”,如此循环,最终找到最优组合。这种“早停”机制避免了在不良超参数上浪费过多计算资源。 BOHB:结合了Hyperband和贝叶斯优化的优点。它使用贝叶斯优化来指导选择下一批候选超参数,而不是随机选择,理论上比Hyperband更智能。 图2:KerasTuner的通用工作流程图清晰地展示了HPO的迭代过程:选择超参数组合 -> 训练模型 -> 评估模型 -> 重复,直到满足用户设定的条件(如尝试次数),最后用找到的最佳超参数组合构建并评估最终模型。 案例研究(“靶场”)设置 表3:本文使用的数据集信息 案例研究1 案例研究2 主题 预测高密度聚乙烯(HDPE)的熔融指数 (MI) 预测聚合物的玻璃化转变温度 ($T_g$) 模型类型 全连接深度神经网络 (Dense DNN) 卷积神经网络 (CNN) 自变量数量 9个工艺参数 (65, 17, 1) 的图像化输入 样本数量 3745 352 输入特征 工艺参数(温度、压力等) 聚合物的SMILES字符串(通过one-hot编码转换为2D矩阵) 待优化的超参数 作者对两个案例都定义了广泛的超参数搜索空间,涵盖了模型结构和学习算法的方方面面。 表5:HDPE熔融指数预测的超参数搜索列表与描述(案例1) 超参数名称 类型 描述 搜索空间 units_1 整数 第一个隐藏层的节点数 32到512,步长32 alpha_1 浮点数 第一个隐藏层Leaky ReLU的斜率 0.05到0.5,步长0.05 dropout_1 浮点数 第一个dropout层的比率 0.05到0.5,步长0.05 num_layers 整数 额外的隐藏层数量 1到4 units_hid_i 整数 额外隐藏层i的节点数 32到512,步长32 alpha_hid_i 浮点数 额外隐藏层i的Leaky ReLU斜率 0.05到0.5,步长0.05 dropout_hid_i 浮点数 额外隐藏层i的dropout比率 0.05到0.5,步长0.05 learning_rate 选项 Adam优化器的学习率 [0.01, 0.001, 0.0001] 结果与分析 案例1:预测HDPE的熔融指数 (MI) 图1:HDPE熔融指数预测的基础DNN结构。 HPO的巨大威力:未经优化的基准DNN模型,其预测RMSE高达0.420,R²为0.92012。经过HPO后,最佳模型的RMSE降低至0.04792,R²提升至0.99692。性能提升了近8.8倍,效果惊人。 表1:有无超参数优化的分子属性预测精度对比 属性预测 均方根误差 (RMSE) (无HPO) 均方根误差 (RMSE) (有HPO) 决定系数 (R²) (无HPO) 决定系数 (R²) (有HPO) 1. HDPE熔融指数 0.420 0.048 0.92012 0.99692 2. 聚合物玻璃化转变温度 70.60 K 15.68 K - 0.94829 算法效率与精度对比: 表7:三种HPO算法对HDPE熔融指数预测的总调优时间 HPO算法 贝叶斯优化 随机搜索 Hyperband 耗时 09 h 08 m 51s 09 h 15 m 12s 00 h 59 m 55s 表9:新DNN模型在测试集上的性能结果 (HDPE MI预测) 性能指标 贝叶斯优化 随机搜索 Hyperband Loss 0.00463 0.00230 0.00271 MAE 0.04873 0.03014 0.03561 RMSE 0.06803 0.04792 0.05201 $R^2$ 0.99134 0.99692 0.99669 结论: Hyperband效率最高:调优时间仅为其他两种方法的约1/9。 随机搜索意外胜出:在这个相对简单的DNN模型案例中,随机搜索在测试集和交叉验证上均获得了最佳的预测精度。作者认为,这可能是因为对于简单的DNN,随机搜索已经足够找到一个非常好的解。 Hyperband表现稳健:尽管精度略低于随机搜索,但Hyperband的结果仍然非常出色,远超基准模型,并且考虑其巨大的时间优势,性价比极高。 图4-6分别展示了由贝叶斯优化、随机搜索和Hyperband找到的最佳DNN结构。图7-12则展示了对应的损失曲线和预测值-真实值对比图。 案例2:预测聚合物的玻璃化转变温度 ($T_g$) 图13:聚合物Tg预测的基础CNN结构详情。 HPO再次展现威力:基准CNN模型的预测准确率约为82%,MAPE (平均绝对百分比误差) 约为6%。经过HPO优化后,最佳模型的RMSE从70.60 K降至15.68 K,MAPE低至3.00%,R²高达0.95029,性能提升同样非常显著。 算法效率与精度对比: 表11:新CNN模型在测试集上的性能结果 ($T_g$预测) 性能指标 贝叶斯优化 随机搜索 Hyperband Loss 349.021 349.432 245.903 MAE 11.4451 11.6328 9.1034 MAPE 0.03731 0.03931 0.03002 RMSE 18.6821 18.6931 15.6813 $R^2$ 0.92709 0.92554 0.94829 结论: Hyperband全面占优:对于这个更复杂的CNN模型,Hyperband在所有性能指标上都显著优于贝叶斯优化和随机搜索,并且仍然保持着最高的计算效率(比贝叶斯快2.5倍,比随机搜索快3.5倍)。 贝叶斯优于随机搜索:与案例1不同,在此复杂案例中,贝叶斯优化的表现优于随机搜索,更符合理论预期。 图14-16展示了HPO找到的最佳CNN结构。图17-22展示了对应的损失曲线和预测-真实值对比。 BOHB组合算法的评估 作者进一步使用Optuna库测试了理论上更先进的BOHB算法。 表13a-d:BOHB与其他算法的性能和时间对比(节选) 案例 算法 耗时 RMSE $R^2$ HDPE MI Hyperband ~1 h 0.05201 0.99669 BOHB ~4 h 0.05577 0.99652 Polymer $T_g$ Hyperband ~6.5 h 15.6813 0.94829 BOHB ~11.6 h 15.5779 0.94901 结论:BOHB算法在简单的DNN案例中表现甚至不如Hyperband。在复杂的CNN案例中,虽然其精度略微优于Hyperband,但付出的计算时间成本几乎翻倍。因此,作者认为,这种微小的精度提升并不足以证明其增加的计算成本是合理的。 Q&A Q1: 为什么在进行HPO之前,作者建议先手动确定batch size(批处理大小)? A1: 作者给出了几个非常实际的理由: 1.降低搜索维度:HPO过程的计算成本随着超参数数量的增加而指数级增长。将batch size作为一个超参数会大大增加搜索空间的复杂性,显著延长调优时间。 2.受硬件限制:batch size的大小直接影响内存(特别是GPU显存)的占用。一个过大的batch size可能导致内存溢出,使训练崩溃。因此,它通常由硬件条件决定,而不是一个可以自由优化的参数。 3.影响相对较小且有经验法则:相比于学习率、网络结构等超参数,batch size对模型最终性能的直接影响相对较小。通常,适中的值(如32, 64, 128)就能提供稳定的性能。可以依据经验法则和硬件限制先将其固定下来。 4.与学习率的强相关性:batch size和学习率之间存在已知的关系(大batch size通常配合大学习率)。将它们分开处理,先固定batch size再精调学习率,可以简化优化问题。 Q2: 在案例1中,理论上更“智能”的贝叶斯优化为什么会输给简单的随机搜索? A2: 这是一个非常有趣的现象。作者解释说,尽管贝叶斯优化理论上更优,但在某些情况下,尤其是在有限的尝试次数(本文为500次)、简单的模型或非凸的超参数空间中,它可能表现不佳。贝叶斯优化可能会过早地收敛到某个局部最优区域并反复探索,而简单的随机搜索由于其“盲目性”,反而可能碰巧探索到被贝叶斯优化忽略的、更好的区域。这个结果提醒我们,没有“银弹”,算法的选择有时也依赖于具体问题。 Q3: Hyperband算法的核心优势是什么?为什么它能做到又快又好? A3: Hyperband的核心优势在于其高效的资源分配策略,即“早停”机制。传统方法(如随机搜索)会对每一个超参数组合都进行完整的训练(例如跑满100个epochs),这在坏的组合上浪费了大量时间。而Hyperband则像一个多轮淘汰赛: 第一轮:快速地用少量资源(如5个epochs)训练大量(如81个)不同的模型。 淘汰:淘汰掉表现最差的2/3模型。 第二轮:将更多资源(如15个epochs)分配给幸存的1/3模型(27个)。 循环:不断重复这个“训练-淘汰-晋级”的过程,直到只剩下一个模型,并对其进行最充分的训练。 通过这种方式,Hyperband能够迅速剔除没有前途的超参数组合,将宝贵的计算资源集中在少数有潜力的“精英”组合上,从而实现又快又好的效果。 Q4: 这篇论文的方法学对于我自己的研究有什么直接的指导意义? A4: 指导意义非常直接: 1.必须做HPO:如果你在使用DNN/CNN做任何预测任务,不要满足于默认参数或文献参数,系统性的HPO能带来巨大的性能提升。 2.首选Hyperband:在选择HPO算法时,将Hyperband作为你的首选或基准。它在速度和性能之间取得了极佳的平衡。 3.使用KerasTuner:如果你使用TensorFlow/Keras框架,KerasTuner是一个极好的起点。它易于使用,功能强大,能让你快速实施Hyperband等算法。 4.并行是关键:无论使用何种平台,确保利用其并行计算功能。在多核CPU或GPU上同时运行多个试验,可以将数天的调优过程缩短到数小时。 关键结论与批判性总结 潜在影响 ** democratizing HPO**:为化学、材料等领域的非计算机专业研究者提供了一套清晰、实用且高效的深度学习模型优化“标准作业程序 (SOP)”,极大地降低了构建高性能AI模型的门槛。 设定新基准:通过明确展示系统性HPO带来的巨大收益,本研究可能会提升领域内对模型质量的要求,促使未来的MPP研究更加重视并规范化超参数优化这一关键步骤。 效率驱动:强调了Hyperband算法在平衡速度与精度上的巨大优势,为面临计算资源限制的研究者提供了一个极具性价比的选择,有助于加速科研迭代周期。 研究局限性 模型和任务范围有限:研究主要集中在两种相对经典的神经网络结构(Dense DNN和CNN)以及两类特定的分子属性预测任务上。其结论是否能直接推广到更前沿、更复杂的模型(如图神经网络GNNs、Transformers)和更多样化的任务(如反应预测、逆向设计)上,仍有待验证。 数据集规模:所用的数据集规模中等(数千和数百个样本)。在更大规模(数十万甚至数百万样本)的数据集上,不同HPO算法的效率和性能排序可能会发生变化。 硬件平台单一:所有测试均在CPU上完成。在现代GPU集群上,不同算法的并行化效率和实际运行时间表现可能会有所不同。 未来方向 扩展到更复杂的模型:将本研究的方法学应用到图神经网络(GNNs)和Transformers等更先进的模型架构上,为这些模型的HPO提供指导。 更大规模的基准测试:在更大、更多样化的公开数据集上(如QM9、ZINC、MoleculeNet)重复本研究的比较,以获得更具普适性的结论。 自动化流程开发:开发一个集成了数据预处理、模型构建、HPO(以Hyperband为核心)和模型评估的全自动化工作流,实现分子属性预测的“一键式”优化建模。 小编锐评:其实就是速度比贝叶斯快,再调研下再说吧
Machine Learning & AI
· 2025-10-20
基于图像的分子表征:二维分子图像表征详解
基于图像的分子表征:二维(2D)分子图像表征 二维图像是分子最直接的视觉表征,通常源自SMILES字符串。它们具有简单和直观的特点,使其成为分子设计和分析,特别是高通量应用中一个引人注目的选择。二维分子图像为CNN提供了更直接可用和信息更丰富的输入,旨在减轻网络学习基本化学特征的负担,从而可能带来性能或数据效率的提升。 一、RDKit基础用法 RDKit是解析SMILES、生成二维坐标和渲染分子图像的主要库[1]。其GitHub仓库是 https://github.com/rdkit/rdkit 。RDKit是一个核心的开源化学信息学工具包,广泛用于将SMILES字符串转换为二维分子图像。 1.1 基础工作流程 一般的工作流程包括: 解析SMILES字符串以创建RDKit Mol对象 生成用于描绘的二维坐标 将此布局渲染成图像格式,通常是Python中的PIL Image对象 1.2 关键RDKit模块和函数 基础函数 Chem.MolFromSmiles():将SMILES字符串解析为RDKit Mol对象[2] Draw.MolToImage():从Mol对象生成PIL Image,允许基本的自定义,如图像大小、kekulization和楔形键的显示[3] rdDepictor.Compute2DCoords():生成用于描绘的2D坐标。使用rdDepictor.SetPreferCoordGen(True)有助于实现更一致的分子朝向[4] AllChem.Compute2DCoords():另一种生成2D坐标的选择[5] 高级绘图类 Draw.MolDraw2DCairo:生成光栅图像(如PNG),提供更细致的绘图选项控制[6] Draw.MolDraw2DSVG:生成矢量图像,提供更细致的绘图选项控制[6] 1.3 CNN输入的关键参数和自定义 图像大小 一致性对CNN输入至关重要: DEEPScreen使用200x200像素[7] ImageMol默认为224x224像素[8] Chemception通常使用80x80像素[9] RDKit的MolToImage接受一个size元组 MolDraw2DCairo则在初始化时指定宽度和高度 分辨率和细节 DrawingOptions.dotsPerAngstrom(用于MolToImage)控制像素密度相对于分子大小的比例[10] MolDrawOptions.fixedBondLength可以固定键在图像中的像素长度,以实现一致的缩放[11] 原子和键的高亮 highlightAtoms和highlightBonds参数可用于MolToImage以及绘图类的DrawMolecule方法[3] highlightColor(用于MolToImage)或MolDrawOptions.highlightColour设置高亮颜色[3] MolDrawOptions.atomColourPalette或MolDraw2D.DrawMolecule(highlightAtomColors={atom_index: (R,G,B)})允许自定义特定原子的颜色[12] 原子和键的颜色 MolDrawOptions.setAtomPalette({atom_index: (R,G,B)})可以设置自定义的原子颜色调色板[11] RDKit Cookbook也展示了使用useBWAtomPalette()生成黑白图像的方法[13] 图例(Legends) DrawMolecule中的legend参数**或MolsToGridImage中的legends参数可以添加文本注释[3] MolDrawOptions如legendFontSize和legendFraction控制图例外观[11] 1.4 基础代码示例 基础MolToImage示例 from rdkit import Chem from rdkit.Chem.Draw import MolToImage mol = Chem.MolFromSmiles("CN1C=NC2=C1C(=O)N(C(=O)N2C)C") # Caffeine img = MolToImage(mol, size=(256, 256)) # img.save("caffeine_2d.png") MolDraw2DCairo带高亮示例 from rdkit import Chem from rdkit.Chem.Draw import rdMolDraw2D from io import BytesIO # 用于在内存中处理图像数据 # from PIL import Image # 用于查看或保存图像 mol = Chem.MolFromSmiles("Cc1ccccc1O") # o-cresol # 高亮甲基所在的子结构 substructure = Chem.MolFromSmarts("c(C)O") # 带有甲基和羟基的芳香碳 match = mol.GetSubstructMatch(substructure) drawer = rdMolDraw2D.MolDraw2DCairo(300, 300) # width, height # 自定义原子颜色示例 atom_colors = {} if match: for atom_idx in match: if mol.GetAtomWithIdx(atom_idx).GetSymbol() == 'O': atom_colors[atom_idx] = (1.0, 0.0, 0.0) # 氧原子用红色 elif mol.GetAtomWithIdx(atom_idx).GetSymbol() == 'C': atom_colors[atom_idx] = (0.0, 0.0, 1.0) # 碳原子用蓝色 drawer.DrawMolecule(mol, highlightAtoms=match, highlightAtomColors=atom_colors, legend="o-cresol with substructure highlight") drawer.FinishDrawing() png_data = drawer.GetDrawingText() # 获取PNG数据 (bytes) # with open("o_cresol_highlighted.png", "wb") as f: # f.write(png_data) 二、具体方法和实现 2.1 ImageMol 方法简介 ImageMol是一个基于分子图像的无监督预训练深度学习框架,用于计算化学药物发现[14]。该框架在1000万无标签的类药物生物活性分子上进行预训练,结合了图像处理框架和全面的分子化学知识,以视觉计算方式提取精细的像素级分子特征[15]。 ImageMol的核心创新: 利用分子图像作为化合物的特征表示,具有高精度和低计算成本 利用无监督预训练学习框架从1000万种具有多样生物活性的类药物化合物中捕获分子图像的结构信息 预训练策略 ImageMol采用五种预训练策略来优化分子编码器的潜在表示[16]: Mask-based contrastive learning (MCL):对分子图像的16×16方形区域进行掩码,训练模型最小化掩码和未掩码图像提取的潜在特征之间的距离 Molecular rationality discrimination (MRD):预测输入图像是否合理 Jigsaw puzzle prediction (JPP):将图像分解为九个补丁,随机重排后预测正确顺序 Image rotational prediction:预测图像的旋转角度 Contrastive learning:学习相似分子的相似表示 代码实现 基础图像生成: def smiles_to_image(smis, size=224, save_path=None): try: mol = Chem.MolFromSmiles(smis) img = Draw.MolsToGridImage([mol], molsPerRow=1, subImgSize=(size, size)) if save_path is not None: img.save(save_path) return img except: return None 完整的latent feature提取功能: import os import torch import torchvision.transforms as transforms import torchvision.models as models from tqdm import tqdm import requests from rdkit import Chem from rdkit.Chem import Draw def download_pretrained_model(model_url, cache_dir=None, force_download=False): """ 下载并缓存预训练模型文件 参数: model_url: 模型下载链接 cache_dir: 缓存目录(默认为系统临时目录下的 imagemol_cache) force_download: 是否强制重新下载模型 返回: model_path: 模型文件路径 """ if cache_dir is None: cache_dir = os.path.join(tempfile.gettempdir(), "imagemol_cache") os.makedirs(cache_dir, exist_ok=True) model_path = os.path.join(cache_dir, "ImageMol.pth.tar") if force_download or not os.path.exists(model_path): print("开始下载预训练模型...") download_file_from_google_drive(model_url, model_path) print(f"模型已下载到: {model_path}") return model_path def load_pretrained_model(model_name="ResNet18", image_size=224, pretrained=False, model_url=None): """ 加载预训练模型(支持从本地或远程下载) 参数: model_name: 模型架构名称 (ResNet18/ResNet34/ResNet50) image_size: 输入图像尺寸 pretrained: 是否使用 PyTorch 官方预训练权重 model_url: 自定义预训练权重下载链接 返回: model: 加载好的模型 """ # 如果指定了自定义模型链接,则先下载 if model_url: model_path = download_pretrained_model(model_url) else: model_path = None # 使用官方预训练权重 if model_name == "ResNet18": model = models.resnet18(pretrained=pretrained) elif model_name == "ResNet34": model = models.resnet34(pretrained=pretrained) elif model_name == "ResNet50": model = models.resnet50(pretrained=pretrained) else: raise ValueError(f"不支持的模型架构: {model_name}") # 如果提供了自定义模型路径,加载权重 if model_path: try: checkpoint = torch.load(model_path, map_location=torch.device('cpu')) model.load_state_dict(checkpoint['model_state_dict']) print("=> 成功加载自定义预训练权重") except Exception as e: print(f"=> 加载预训练权重失败: {e}") print("尝试直接从 torchvision 加载官方预训练权重...") model = models.resnet18(pretrained=True) # 示例回退到官方权重 return model def download_file_from_google_drive(url, destination): """ 从 Google Drive 下载文件(支持大文件) """ file_id = url.split('/')[-2] if 'view' in url else url.split('/')[-1] base_url = 'https://docs.google.com/uc?export=download' session = requests.Session() response = session.get(base_url, params={'id': file_id}, stream=True) # 处理下载确认 for key, value in response.cookies.items(): if key.startswith('download_warning'): params = {'id': file_id, 'confirm': value} response = session.get(base_url, params=params, stream=True) break # 写入文件 with open(destination, 'wb') as f: with tqdm(unit='B', unit_scale=True, unit_divisor=1024) as bar: for chunk in response.iter_content(32768): if chunk: f.write(chunk) bar.update(len(chunk)) # 示例:创建 ResNet18 模型并提取 latent feature def smiles_to_latent(smiles, model, image_size=224): """ 将 SMILES 字符串转换为 latent feature """ mol = Chem.MolFromSmiles(smiles) if mol is None: raise ValueError(f"无法解析 SMILES: {smiles}") # 生成分子图像 img = Draw.MolsToGridImage([mol], molsPerRow=1, subImgSize=(image_size, image_size)) img_path = "temp_molecule.png" img.save(img_path) # 图像预处理 transform = transforms.Compose([ transforms.Resize((image_size, image_size)), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) img_tensor = transform(Image.open(img_path).convert('RGB')).unsqueeze(0) # 提取 latent feature with torch.no_grad(): embedding_layer = list(model.children())[:-1] embedding_model = torch.nn.Sequential(*embedding_layer) latent_feature = embedding_model(img_tensor).squeeze() return latent_feature # 主程序 if __name__ == "__main__": # 1. 下载并加载模型 model_url = "https://drive.usercontent.google.com/download?id=1wQfby8JIhgo3DxPvFeHXPc14wS-b4KB5&export=download&authuser=0" model = load_pretrained_model( model_name="ResNet18", model_url=model_url # 使用自定义预训练权重 ) # 2. 示例 SMILES mol_smiles = "Cc1ccccc1O" # 异丙苯酚 latent = smiles_to_latent(mol_smiles, model) print(f"Latent feature shape: {latent.shape}") print(f"Latent feature sample: {latent[:5]}") 代码说明和来源 原仓库:https://github.com/HongxinXiang/ImageMol 主要文件:smiles2img_pretrain.py和dataloader/image_dataloader.py License:MIT License 论文:发表在Nature Machine Intelligence (2022),题目为”Accurate prediction of molecular properties and drug targets using a self-supervised image representation learning framework” 2.2 Chemception 方法简介 Chemception是受Google Inception-ResNet深度卷积神经网络启发开发的深度CNN,仅使用分子2D图像进行化学性质预测,无需提供额外的显式化学知识,如基本概念(周期性)或高级特征(分子描述符和指纹)[17]。 Chemception的关键创新: 多通道图像表示:将显式的化学特征直接编码到图像通道中,为神经网络提供更丰富、信息量更大的输入 四通道编码方案:每个通道编码不同的化学属性,使CNN能够”看到”特定位置的化学性质 多通道表示方法 Chemception采用4通道图像方法,每个通道编码特定的化学信息[18]: 通道0:编码键级(例如,单键为1.0,双键为2.0) 通道1:编码原子序数 通道2:编码原子杂化状态(例如,sp, sp2, sp3表示为数值) 通道3:编码Gasteiger部分电荷 图像尺寸通常为80x80像素或48x48像素。 代码实现 import numpy as np from rdkit import Chem from rdkit.Chem import AllChem import matplotlib.pyplot as plt def chemcepterize_mol(mol, embed=20.0, res=0.5): """ 将RDKit分子对象转换为Chemception格式的多通道图像 参数: mol: RDKit分子对象 embed: 嵌入大小,控制图像的空间范围 res: 分辨率,每像素对应的空间距离 返回: vect: 形状为(dims, dims, 4)的numpy数组,包含4个通道的化学信息 """ dims = int(embed*2/res) # 复制分子并计算Gasteiger电荷 cmol = Chem.Mol(mol.ToBinary()) cmol.ComputeGasteigerCharges() AllChem.Compute2DCoords(cmol) coords = cmol.GetConformer(0).GetPositions() # 初始化4通道图像向量 vect = np.zeros((dims, dims, 4)) # 首先处理键信息(通道0) for i, bond in enumerate(mol.GetBonds()): bondorder = bond.GetBondTypeAsDouble() bidx = bond.GetBeginAtomIdx() eidx = bond.GetEndAtomIdx() bcoords = coords[bidx] ecoords = coords[eidx] frac = np.linspace(0, 1, int(1/res*2)) for f in frac: c = (f*bcoords + (1-f)*ecoords) idx = int(round((c[0] + embed)/res)) idy = int(round((c[1] + embed)/res)) # 确保索引在图像范围内 if 0 <= idx < dims and 0 <= idy < dims: vect[idx, idy, 0] = bondorder # 保存键级到第一个通道 # 处理原子信息(通道1-3) for i, atom in enumerate(cmol.GetAtoms()): idx = int(round((coords[i][0] + embed)/res)) idy = int(round((coords[i][1] + embed)/res)) # 确保索引在图像范围内 if 0 <= idx < dims and 0 <= idy < dims: # 原子序数(通道1) vect[idx, idy, 1] = atom.GetAtomicNum() # Gasteiger电荷(通道3) try: charge = float(atom.GetProp("_GasteigerCharge")) vect[idx, idy, 3] = charge except: vect[idx, idy, 3] = 0.0 # 杂化状态(通道2) hyptype = atom.GetHybridization().real vect[idx, idy, 2] = hyptype return vect # 使用示例 def demo_chemception(): """演示Chemception图像生成""" # 创建分子对象 mol = Chem.MolFromSmiles("CCO") # 乙醇 # 生成Chemception图像 v = chemcepterize_mol(mol, embed=10, res=0.2) print(f"图像形状: {v.shape}") # 输出:(100, 100, 4) # 可视化前3个通道(模拟RGB图像) plt.figure(figsize=(12, 4)) plt.subplot(1, 4, 1) plt.imshow(v[:, :, 0], cmap='viridis') plt.title('通道0: 键级') plt.colorbar() plt.subplot(1, 4, 2) plt.imshow(v[:, :, 1], cmap='viridis') plt.title('通道1: 原子序数') plt.colorbar() plt.subplot(1, 4, 3) plt.imshow(v[:, :, 2], cmap='viridis') plt.title('通道2: 杂化状态') plt.colorbar() plt.subplot(1, 4, 4) plt.imshow(v[:, :, 3], cmap='viridis') plt.title('通道3: Gasteiger电荷') plt.colorbar() plt.tight_layout() plt.show() return v # demo_chemception() 代码说明和来源 原仓库:https://github.com/Abdulk084/Chemception 主要文件:chemcemption.ipynb License:MIT License 论文:Goh等人2017年发表的”Chemception: A Deep Neural Network with Minimal Chemistry Knowledge Matches the Performance of Expert-developed QSAR/QSPR Models”[17] 2.3 DEEPScreen 方法简介 DEEPScreen是一个大规模药物-靶点相互作用(DTI)预测系统,用于早期药物发现,使用深度卷积神经网络和化合物的2D结构表示作为输入[19]。DEEPScreen的主要优势是在输入层使用现成的2D结构表示,而不是性能有限的传统描述符。 DEEPScreen的特点: 对704个目标蛋白质进行训练(使用精心策划的生物活性数据) 使用200x200像素的2D结构表示 手性信息被省略(这是SMILES表示的局限性,而非图像生成过程的问题) 生成了近2100万个新的DTI预测 代码实现 import os import subprocess from rdkit import Chem from rdkit.Chem import Draw from rdkit.Chem.Draw import DrawingOptions import cairosvg # 配置参数 IMG_SIZE = 200 training_files_path = "/path/to/training_files" # 需要根据实际情况修改 def save_comp_imgs_from_smiles(tar_id, comp_id, smiles): """ 将分子的 SMILES 表示转换为图片 参数: tar_id: 目标 ID comp_id: 化合物 ID smiles: 分子的 SMILES 字符串 """ # 创建分子对象 mol = Chem.MolFromSmiles(smiles) if mol is None: print(f"无法解析SMILES: {smiles}") return # 设置绘图选项 DrawingOptions.atomLabelFontSize = 55 DrawingOptions.dotsPerAngstrom = 100 DrawingOptions.bondLineWidth = 1.5 # 确保目标目录存在 target_dir = os.path.join(training_files_path, "target_training_datasets", tar_id, "imgs") os.makedirs(target_dir, exist_ok=True) # 绘制分子为 SVG 图像 svg_path = os.path.join(target_dir, f"{comp_id}.svg") Draw.MolToFile(mol, svg_path, size=(IMG_SIZE, IMG_SIZE)) # 将 SVG 图像转换为 PNG 图像 png_path = os.path.join(target_dir, f"{comp_id}.png") cairosvg.svg2png(url=svg_path, write_to=png_path) # 删除临时的 SVG 文件 if os.path.exists(svg_path): subprocess.call(["rm", svg_path]) print(f"已生成图像: {png_path}") def batch_generate_images(tar_id, smiles_dict): """ 批量生成分子图像 参数: tar_id: 目标ID smiles_dict: 字典,键为化合物ID,值为SMILES字符串 """ for comp_id, smiles in smiles_dict.items(): try: save_comp_imgs_from_smiles(tar_id, comp_id, smiles) except Exception as e: print(f"生成图像失败 - 化合物ID: {comp_id}, SMILES: {smiles}, 错误: {e}") # 使用示例 if __name__ == "__main__": # 示例数据 tar_id = "CHEMBL286" smiles_data = { "CHEMBL1": "CCO", # 乙醇 "CHEMBL2": "CCOC", # 乙醚 "CHEMBL3": "CN1C=NC2=C1C(=O)N(C(=O)N2C)C", # 咖啡因 } # 生成图像 batch_generate_images(tar_id, smiles_data) 代码说明和来源 原仓库:https://github.com/cansyl/DEEPScreen 主要文件:bin/data_processing.py License:MIT License 论文:发表在Chemical Science (2020),题目为”DEEPScreen: high performance drug–target interaction prediction with convolutional neural networks using 2-D structural compound representations”[19] 依赖:需要安装rdkit和cairosvg库 2.4 KekuleScope 方法简介 KekuleScope采用”凯库勒结构表示”作为CNN的输入[20]。该方法专注于使用标准的分子结构图像进行性质预测,与其他方法的主要区别在于其对分子图像的特定处理方式。 代码实现 import os import sys from rdkit import Chem from rdkit.Chem import Draw import glob def generate_molecule_images(cell_line, seed, smiles_list, chembl_ids, dataset_type): """ 生成分子图片的主函数 参数: cell_line: 细胞系名称 seed: 随机种子 smiles_list: SMILES字符串列表 chembl_ids: ChEMBL ID列表 dataset_type: 数据集类型 ("train", "val", "test") """ base_dir = f'./images/{cell_line}/{seed}/{dataset_type}/images' os.makedirs(base_dir, exist_ok=True) svgs = glob.glob(f"{base_dir}/*svg") pngs = glob.glob(f"{base_dir}/*png") # 如果没有SVG或PNG文件,则生成SVG图像 if len(svgs) == 0 and len(pngs) == 0: for i, smiles in enumerate(smiles_list): mol = Chem.MolFromSmiles(smiles) if mol is not None: # 生成SVG图像 svg_img = Draw.MolsToGridImage([mol], molsPerRow=1, useSVG=True) svg_file_path = f'{base_dir}/{chembl_ids[i]}.svg' with open(svg_file_path, 'w') as f: f.write(svg_img.data) print(f"已生成SVG: {svg_file_path}") else: print(f"无法解析SMILES: {smiles}") else: print(f"SVGs ready for {dataset_type}") # 将 SVG 转换为 PNG pngs = glob.glob(f"{base_dir}/*png") if len(pngs) == 0: basedir = os.getcwd() os.chdir(base_dir) # 使用ImageMagick进行转换 cmd = "AA=($( find . -name '*.svg' ));for i in ${AA[*]}; do convert -density 800 ${i} -resize 300x ${i}.png ; done" try: os.system(cmd) print("SVG转PNG完成") except Exception as e: print(f"转换过程中出现错误: {e}") # 清理SVG文件 cmd = "rm -rf *.svg" os.system(cmd) os.chdir(basedir) def run_kekulescope_pipeline(cell_line="KB", seed=1): """ 运行完整的KekuleScope图像生成流程 参数: cell_line: 细胞系名称,默认为"KB" seed: 随机种子,默认为1 """ # 示例数据 smiles_list = [ "CCO", # 乙醇 "CCOC", # 乙醚 "CN1C=NC2=C1C(=O)N(C(=O)N2C)C", # 咖啡因 "CC(C)CC1=CC=C(C=C1)C(C)C(=O)O", # 布洛芬 ] chembl_ids = ["CHEMBL1", "CHEMBL2", "CHEMBL3", "CHEMBL4"] # 为不同数据集生成图像 for dataset_type in ["train", "val", "test"]: print(f"正在为{dataset_type}数据集生成图像...") generate_molecule_images(cell_line, seed, smiles_list, chembl_ids, dataset_type) # 使用示例 if __name__ == "__main__": run_kekulescope_pipeline() 代码说明和来源 原仓库:https://github.com/isidroc/kekulescope 主要文件:Kekulescope.py和load_images.py License:MIT license 框架:利用PyTorch框架 特点:使用ImageMagick进行SVG到PNG的转换,需要系统安装ImageMagick 2.5 其他相关方法 DECIMER 1.0 DECIMER (Deep lEarning for Chemical ImagE Recognition)是一个基于Transformer的光学化学结构识别工具[21],专注于从化学图像中识别和重构分子结构。该工具使用CNN进行图像解析,然后使用Transformer解码器生成SMILES字符串。 GitHub:https://github.com/Kohulan/DECIMER 特点:使用EfficientNet-B3作为编码器,处理299×299像素图像 应用:主要用于从文献中的化学结构图像提取SMILES表示 MolNexTR MolNexTR是一个结合ConvNext和Vision Transformer的深度学习模型,用于从分子图像生成SMILES字符串[22]。该模型能够同时预测原子和键,并理解它们的布局规则。 特点:结合CNN和Vision Transformer的优势 应用:分子图像识别和SMILES生成 数据集:在Indigo、ChemDraw、RDKit、CLEF、UOB、JPO、USPTO、Staker和ACS等数据集上表现优异 Toxic Colors Toxic Colors使用2DConvNet处理”化学品的简单二维绘图”[23],专注于毒性预测。该方法使用MOE软件生成分子图像,然后应用CNN进行毒性分类。 ADMET-CNN ADMET-CNN是一种基于分子二维图像的CNN,用于预测ADMET(吸收、分布、代谢、排泄、毒性)性质[24]。该方法使用RDKit生成分子图像,然后训练CNN模型预测药物的ADMET性质。 三、应用和扩展 3.1 迁移学习和预训练 现代分子图像表示学习中,迁移学习已成为一个重要趋势。在医学领域,获取大量标记数据集通常很困难,迁移学习提供了解决方案[25]。 预训练策略 ImageNet预训练:使用在ImageNet等大型图像数据集上预训练的CNN作为特征提取器 自监督预训练:如ImageMol使用的多任务预训练策略 域适应:将通用图像特征转移到化学领域 数据增强技术 为了提高模型的泛化能力和鲁棒性,研究者开发了多种数据增强技术[26]: 几何变换:旋转、翻转、缩放 颜色变换:灰度化、对比度调整 噪声添加:添加高斯噪声、椒盐噪声 分子特定增强:随机删除原子或键 3.2 模型解释性 Grad-CAM分析 分子图像CNN模型可以使用Gradient-weighted Class Activation Mapping (Grad-CAM)进行解释[27]。Grad-CAM能够识别模型关注的分子区域,帮助理解哪些结构特征对预测结果最重要。 特征可视化 通过可视化CNN不同层的激活模式,研究者可以理解模型学习到的化学特征: 低层特征:边缘、角度 中层特征:官能团、环结构 高层特征:复杂的分子骨架 3.3 多模态学习 图像-文本联合学习 结合分子图像和SMILES/SELFIES等文本表示,可以实现更强大的分子表示学习[28]: 对比学习:学习图像和文本表示之间的对应关系 多模态融合:在决策层面融合不同模态的信息 交叉注意力机制:让图像和文本表示相互增强 图像-图结构联合学习 结合2D分子图像和分子图结构,可以同时利用视觉信息和拓扑信息: 联合编码:同时处理图像和图结构 知识蒸馏:用图神经网络指导CNN学习 多任务学习:同时优化图像和图结构相关的任务 3.4 实际应用领域 药物发现 虚拟筛选:从大型化合物库中筛选活性化合物 药物重定位:发现已知药物的新适应症 ADMET预测:预测药物的吸收、分布、代谢、排泄和毒性 材料科学 聚合物性质预测:预测聚合物的物理化学性质 催化剂设计:设计高效的催化剂 能源材料:开发新型电池和太阳能材料 环境科学 污染物降解:预测污染物的降解路径和速率[26] 生态毒性评估:评估化学品对环境的影响 生物累积性预测:预测化学品在生物体内的累积 3.5 技术挑战和未来方向 当前挑战 数据质量:分子图像的标准化和质量控制 可解释性:提高模型预测的可解释性 泛化能力:在不同化学空间中的泛化性能 计算效率:处理大规模分子库的效率 未来发展方向 3D信息整合:结合3D分子构象信息[29] 动态性质预测:预测分子的动态行为 多尺度建模:从分子到细胞到器官的多尺度预测 自动化流程:端到端的自动化预测流程 四、方法对比分析 4.1 主要方法对比表 方法 图像尺寸 绘图方法 特点 主要应用 优势 限制 ImageMol 224×224 MolsToGridImage 自监督预训练多任务学习 分子性质预测药物靶点预测 • 大规模预训练• 高精度• 迁移学习能力强 • 计算资源需求高• 缺乏3D信息 Chemception 80×8048×48 calculate pixels 多通道编码(键级、原子序数、杂化、电荷) 毒性预测活性预测溶解性预测 • 化学信息丰富• 可解释性强• 计算效率高 • 图像分辨率较低• 需要化学知识编码 DEEPScreen 200×200 MolToFile 药物-靶点相互作用大规模训练 虚拟筛选药物重定位 • 专门针对DTI• 大规模数据库• 实用性强 • 应用范围有限• 缺乏手性信息 KekuleScope 300×300 MolsToGridImage 凯库勒结构表示高分辨率 分子性质预测 • 图像质量高• 标准化程度高 • 数据处理复杂• 计算开销大 DECIMER 299×299 — 图像到SMILESTransformer解码 光学结构识别文献挖掘 • 实用工具• 端到端处理 • 专门用途• 需要高质量图像 4.2 性能比较 准确性方面 ImageMol:在多个基准数据集上表现最佳,特别是在CYP450抑制预测中 Chemception:在小数据集上表现良好,与专家开发的QSAR模型性能相当 DEEPScreen:在DTI预测任务中超越传统指纹方法 计算效率 Chemception:图像尺寸小,训练和推理速度快 ImageMol:需要大量计算资源进行预训练,但推理相对高效 DEEPScreen:中等计算需求,适合实际应用 可扩展性 ImageMol:预训练模型可以轻松适应新任务 Chemception:架构简单,易于修改和扩展 DEEPScreen:专门设计,扩展到其他任务需要重新训练 4.3 选择建议 根据应用场景选择 通用分子性质预测:推荐ImageMol 毒性和溶解性预测:推荐Chemception 药物-靶点相互作用:推荐DEEPScreen 图像识别任务:推荐DECIMER 根据资源条件选择 计算资源丰富:ImageMol或KekuleScope 计算资源有限:Chemception 需要快速部署:DEEPScreen 根据数据特点选择 大规模无标签数据:ImageMol的自监督学习 小规模标注数据:Chemception的简单架构 特定领域数据:针对性训练的专用模型 参考文献 [1] Landrum G. RDKit: Open-source cheminformatics. 2020. Available: https://github.com/rdkit/rdkit [2] RDKit Documentation. Getting Started with the RDKit in Python. Available: https://www.rdkit.org/docs/GettingStartedInPython.html [3] RDKit Drawing Options Documentation. Available: https://www.rdkit.org/docs/source/rdkit.Chem.Draw.html [4] RDKit 2D Coordinate Generation. Available: https://www.rdkit.org/docs/source/rdkit.Chem.rdDepictor.html [5] RDKit AllChem Module Documentation. Available: https://www.rdkit.org/docs/source/rdkit.Chem.AllChem.html [6] RDKit Advanced Drawing Documentation. Available: https://www.rdkit.org/docs/source/rdkit.Chem.Draw.rdMolDraw2D.html [7] Rifaioglu AS, Nalbat E, Atalay V, Martin MJ, Cetin-Atalay R, Doğan T. DEEPScreen: high performance drug–target interaction prediction with convolutional neural networks using 2-D structural compound representations. Chemical Science. 2020;11(9):2531-2557. [8] Zeng X, Xiang H, Yu L, Wang J, Li K, Nussinov R, Cheng F. Accurate prediction of molecular properties and drug targets using a self-supervised image representation learning framework. Nature Machine Intelligence. 2022;4(11):1004-1016. [9] Goh GB, Siegel C, Vishnu A, Hodas NO, Baker N. Chemception: A deep neural network with minimal chemistry knowledge matches the performance of expert-developed QSAR/QSPR models. 2017. arXiv preprint arXiv:1706.06689. [10] RDKit Drawing Options Advanced Configuration. Available: https://www.rdkit.org/docs/source/rdkit.Chem.Draw.html#drawing-options [11] RDKit Molecule Drawing Options. Available: https://www.rdkit.org/docs/source/rdkit.Chem.Draw.rdMolDraw2D.html#drawing-options [12] RDKit Color Customization. Available: https://www.rdkit.org/docs/Cookbook.html [13] RDKit Cookbook. Available: https://www.rdkit.org/docs/Cookbook.html [14] Xiang H. ImageMol: A molecular image-based pre-training deep learning framework for computational drug discovery. 2022. Available: https://github.com/HongxinXiang/ImageMol [15] Li Y, Liu B, Deng J, Guo Y, Du H. Image-based molecular representation learning for drug development: a survey. Briefings in Bioinformatics. 2024;25(4):bbae294. [16] Zeng X, Xiang H, Yu L, et al. Accurate prediction of molecular properties and drug targets using a self-supervised image representation learning framework. Nature Machine Intelligence. 2022;4(11):1004-1016. [17] Goh GB, Siegel C, Vishnu A, Hodas NO, Baker N. Chemception: A deep neural network with minimal chemistry knowledge matches the performance of expert-developed QSAR/QSPR models. arXiv preprint arXiv:1706.06689. 2017. [18] Wildcard Consulting. Learn how to teach your computer to see chemistry - free Chemception models with RDKit and Keras. Available: https://www.wildcardconsulting.dk/useful-information/learn-how-to-teach-your-computer-to-see-chemistry-free-chemception-models-with-rdkit-and-keras/ [19] Rifaioglu AS, Nalbat E, Atalay V, Martin MJ, Cetin-Atalay R, Doğan T. DEEPScreen: high performance drug–target interaction prediction with convolutional neural networks using 2-D structural compound representations. Chemical Science. 2020;11(9):2531-2557. [20] KekuleScope GitHub Repository. Available: https://github.com/isidroc/kekulescope [21] Rajan K, Zielesny A, Steinbeck C. DECIMER 1.0: deep learning for chemical image recognition using transformers. Journal of Cheminformatics. 2021;13(1):61. [22] Chen BJ, Li C, Dai H, Song L. MolNexTR: A generalized deep learning model for molecular image recognition. Journal of Cheminformatics. 2024;16(1):7. [23] Fernandez M, Ban F, Woo G, et al. Toxic Colors: The use of deep learning for predicting toxicity of compounds merely from their graphic images. Journal of Chemical Information and Modeling. 2018;58(8):1533-1543. [24] Shi H, Liu S, Chen J, Li X, Ma Q, Yu B. Predicting drug-target interactions using Lasso with random forest based on evolutionary information and chemical structure. Genomics. 2019;111(6):1839-1852. [25] Dalkiran A, Rifaioglu AS, Martin MJ, et al. ECPred: a tool for the prediction of the enzymatic functions of protein sequences based on the EC nomenclature. BMC Bioinformatics. 2018;19(1):334. [26] Zhong S, Zhang K, Bagheri M, et al. Molecular image-convolutional neural network (CNN) assisted QSAR models for predicting contaminant reactivity toward OH radicals: Transfer learning, data augmentation and model interpretation. Chemical Engineering Journal. 2021;403:126393. [27] Selvaraju RR, Cogswell M, Das A, et al. Grad-CAM: Visual explanations from deep networks via gradient-based localization. In: Proceedings of the IEEE International Conference on Computer Vision. 2017:618-626. [28] Wang S, Guo Y, Wang Y, Sun H, Huang J. SMILES-BERT: Large scale unsupervised pre-training for molecular property prediction. In: Proceedings of the 10th ACM International Conference on Bioinformatics, Computational Biology and Health Informatics. 2019:429-436. [29] Liu S, Guo H, Pan X, et al. A deep learning framework combining molecular image and protein structural representations identifies candidate drugs for pain. bioRxiv. 2024. doi:10.1101/2024.06.12.598706. [30] Ståhl N, Falkman G, Karlsson A, Mathiason G, Boström J. Deep convolutional neural networks for the prediction of molecular properties: Challenges and opportunities connected to the data. Journal of Integrative Bioinformatics. 2019;16(1):20180065.
Machine Learning & AI
· 2025-10-08
为AI炼丹炉净化原料:SMILES、SELFIES与更可靠的分子生成表示法
为AI炼丹炉“净化”原料:SMILES、SELFIES与更可靠的分子生成表示法 本文信息 标题: 提高用于生成化学的分子字符串表示的可靠性 作者: Etienne Reboul, Zoe Wefers, Harish Prabakaran, Jérôme Waldispühl, and Antoine Taly 发表时间: 2025年8月29日 (Accepted) 单位: 巴黎西岱大学/法国国家科学研究中心 (法国),麦吉尔大学计算机科学学院 (加拿大) 引用格式: Reboul, E., Wefers, Z., Prabakaran, H., Waldispühl, J., & Taly, A. Improving the Reliability of Molecular String Representations for Generative Chemistry. Journal of Chemical Information and Modeling. Published online September 17, 2025. https://doi.org/10.1021/acs.jcim.4c02261 源代码: ClearSMILES: https://github.com/EtienneReboul/ClearSMILES 训练数据、模型和样本: https://doi.org/10.5281/zenodo.14420504 SELFIES稳定性测试: https://colab.research.google.com/drive/1jZwRGyXqUSaQhQ-yRILBoqiM1HMlikK0?usp=sharing 摘要 近年来,用于化学的生成式建模发展迅速,但这一热潮也提出了一个根本性问题:哪种分子表示法最适合现代机器学习模型?尽管SMILES并非为生成任务而设计,但它仍然是最常用的基于字符串的表示法。然而,虽然SMILES遵循严格的语法规则,但语法正确的SMILES字符串并不总能对应于化学上有效的分子。另一种语法SELFIES通过确保每个SELFIES字符串都能表示一个有效分子来解决这一局限。本研究全面评估了SMILES和SELFIES作为生成模型表示法的局限性。我们分析了两个关键标准:有效性(viability),即生成的字符串能表示新颖、独特且化合价正确的分子;以及保真度(fidelity),即生成分子的理化性质分布与训练数据相似。我们发现,使用RDKit默认的规范化SMILES生成的分子中,约有五分之一是无效的,未能通过有效性检验。相比之下,所有由SELFIES生成的分子都是有效的,但它们显著偏离了训练数据的分布,表明保真度较低。为了解决这些问题,我们为这两种表示法开发了数据增强程序。虽然简化SELFIES语法在保真度上仅取得了微不足道的增益,但我们为SMILES开发的随机增强方法——ClearSMILES,显著提高了有效性和保真度。ClearSMILES通过使用Kekulé SMILES显式编码芳香性并减少词汇量来简化语法,使模型更容易处理字符串表示。使用ClearSMILES后,无效样本的比例从20%下降了一个数量级至2.2%,并且对训练数据分布的保真度也得到了中度改善。 背景 传统的计算机辅助药物设计通常涉及对大型化合物库进行虚拟筛选,以识别有潜力的“命中”分子。然而,这个过程成本高昂且耗时。近年来,生成式化学(Generative Chemistry)为分子发现带来了新的范式:它不再是被动地“筛选”,而是让AI模型主动“创造”,直接从学习到的化学知识中生成具有期望性质的新分子,从而大大缩短了药物优化的周期。 要让AI模型学会“创造”分子,首先要教会它如何“阅读”分子。目前主流的分子表示法分为两类:图(Graph)和字符串(String)。分子天然是一种图结构(原子为节点,化学键为边),图表示法虽然直观,但处理起来相对复杂。而字符串表示法,如SMILES,将分子结构线性化为一串文本,可以无缝对接自然语言处理(NLP)领域的强大模型(如Transformer),近年来已展现出与图模型相当的性能。 然而,这一领域的飞速发展背后,一个基础性问题却被长期忽视:我们喂给AI的“原料”——分子字符串,本身可靠吗?最广泛使用的SMILES表示法,虽然有明确的语法(如括号表示支链,数字表示环),但一个语法上无懈可击的SMILES字符串,却完全可能描述一个化学上荒谬的分子(如一个碳原子有五根键)。这导致生成模型在“咿呀学语”时,常常“说出”一些听起来通顺但毫无意义的“句子”。为了解决这个问题,SELFIES应运而生,它通过更严格的语法设计,保证任何生成的字符串都能被确定性地解码为一个化学上有效的分子。但SELFIES的这种“万无一失”是否是以牺牲其他重要性质为代价?这两大主流表示法,究竟谁更适合AI炼丹炉? 关键科学问题 在分子生成任务中,哪种字符串表示法(SMILES还是SELFIES)更可靠?它们各自的“死穴”是什么?我们能否通过数据增强的手段,设计出一种新的表示法,同时解决SMILES的有效性(Viability)问题和SELFIES的保真度(Fidelity)问题? 有效性 (Viability):衡量生成模型“说人话”的能力,要求生成的分子必须是化学上有效(化合价正确)、新颖的(不在训练集中)且独特的(非重复)。 保真度 (Fidelity):衡量生成模型是否“跑偏”,要求生成的分子在整体性质分布上(如类药性、分子量、合成可及性等)与训练集中的真实分子相似。 创新点 系统性基准测试:首次对SMILES和SELFILES作为生成化学模型输入的可靠性进行了全面的、并排的基准测试,明确量化了它们在有效性和保真度两个关键指标上的优缺点。 提出了ClearSMILES:开发了一种新颖的、基于随机化和过滤的SMILES数据增强流程(ClearSMILES),旨在通过显式编码芳香性和最小化长程依赖来简化SMILES语法,使其更易于机器学习模型学习。 验证了ClearSMILES的优越性:实验证明,使用ClearSMILES能将生成模型(VAE)产生的无效分子比例从20%急剧降低到2.2%,下降了一个数量级,同时在一定程度上改善了生成分子的性质分布保真度。 研究内容 核心方法论:模型、指标与增强策略 1. 分子表示法:SMILES vs. SELFIES 图1:γ-丁内酯(GBL)的SMILES和SELFIES表示法示例。 如图所示,对于同一个分子,SMILES使用匹配的括号()和数字1来表示支链和环的闭合,这是一种隐式的、需要前后对应的语法。而SELFIES则使用显式的[Branch]和[Ring]标记,其后的“重载标记”(overloaded tokens)用于定义支链或环的长度,语法更严格。 2. 评估标准:有效性(Viability)与保真度(Fidelity) 有效性指标:包括Validity(RDKit能否解析为有效分子)、Novelty(生成分子不在训练集中的比例)和Uniqueness(生成分子中不重复的比例)。三者结合构成本文的Viability。 保真度指标:通过计算生成分子与训练集分子在四个关键理化性质上的分布相似性来衡量,包括QED(类药性)、SA(合成可及性)、MW(分子量)和TPSA(拓扑极性表面积)。分布的差异用Wasserstein距离来量化。 3. 详解ClearSMILES流程 为了解决SMILES表示法存在的问题,作者提出了一种名为ClearSMILES的数据增强流程,其核心思想是为每个分子找到一种“对AI更友好”的SMILES变体。 图3:ClearSMILES流程图,展示了随机化Kekulé SMILES的生成和过滤步骤。 graph LR subgraph "第一步:生成 (Generation)" A("输入一个分子的<br/>规范SMILES") -- "随机化遍历路径<br/>使用Kekulé式表示芳香环" --> B("生成10万个<br/>随机化的Kekulé SMILES") end subgraph "第二步:过滤 (Filtration)" B --> C("1.去除重复项") C --> D("2.筛选使用<br/>最小环数字的SMILES") D --> E("3.计算并筛选<br/>最低“记忆分数”的SMILES") E --> F("4.字母排序取第一个<br/>(确保唯一性)") end subgraph "最终输出" F --> G("<b>一个确定的<br/>ClearSMILES</b>") end 该流程的关键步骤及其物理意义如下: 使用Kekulé式:标准SMILES用小写字母表示芳香原子(如’c’, ‘n’),这是一种抽象概念,模型需要自行学习其与脂肪族大写字母的复杂关系。ClearSMILES通过将芳香环用显式的单双键交替模式表示,统一使用大写字母。这样做的好处是:1)消除了芳香性这一抽象概念,模型只需学习简单的键模式;2)减少了词汇表大小,降低了输入矩阵的维度。 随机化与过滤:一个分子可以有多种合法的SMILES字符串。ClearSMILES通过随机生成10万个变体,然后进行多步过滤,找到“语法最简单”的一个。 筛选最小环数字:SMILES用数字标记环的开合。例如,一个分子中的两个不相交的环可以表示为C1...C1...C2...C2(解耦),也可以表示为C1...C2...C1...C2(耦合)。ClearSMILES优先选择前者,因为它使用的最大数字更小,语法更简单。 筛选最低“记忆分数”:这是ClearSMILES的核心创新。作者定义了一个“记忆分数”来量化SMILES的语法复杂度,它衡量了在遍历字符串时,平均有多少个“未闭合”的括号或环数字。分数越低,意味着字符串的结构越接近线性,分支和环的跨度越短。这极大地减轻了模型(尤其是RNN)学习长程依赖的负担。 实用性:该流程虽然计算密集,但高度并行化。补充材料(图S9)显示,96%的分子的ClearSMILES生成过程可在12秒内完成,具有很高的实用性。 结果与分析 1. 基线模型的表现:SMILES与SELFIES的“死穴” 表1:基于SMILES的VAE(22维潜空间)生成的30万个样本的有效性指标。 | 增强方法 | 有效性(Validity) | 新颖性(Novelty) | 独特性(Uniqueness) | 综合有效性(Viability) | | :— | :— | :— | :— | :— | | RDKit默认规范SMILES | 80.75% | 99.57% | 99.92% | 80.35% | | 规范Kekulé SMILES | 94.26% | 99.70% | 99.99% | 93.97% | | ClearSMILES | 97.80% | 99.13% | 99.92% | 96.89% | 表2:基于SELFIES的VAE(22维潜空间)生成的30万个样本的有效性指标。 | 增强方法 | 字符串稳定性 | 有效性(Validity) | 新颖性(Novelty) | 独特性(Uniqueness) | 综合有效性(Viability) | | :— | :— | :— | :— | :— | :— | | 常规SELFIES | 45.43% | 100.00% | 99.92% | 99.96% | 99.88% | SMILES的死穴——有效性:如表1所示,使用标准SMILES训练的模型,其生成的分子中有近20%是化学无效的。 SELFIES的死穴——保真度:如表2所示,SELFIES的有效性确实是100%。但补充材料(表S2)的深入分析显示,约92%的不稳定SELFIES字符串在解码过程中发生了信息丢失(即解码再编码后,字符串变短了)。 2. 错误溯源:为什么会失败? 图2:(a) VAE模型和(b) MolGPT模型生成的SMILES样本的错误类型分布。 SMILES的错误根源:如图2a所示,在SMILES生成的无效分子中,绝大多数错误(蓝色条)都与芳香性(aromaticity)有关。这证实了芳香性的抽象表示是模型学习的难点。 SELFIES的保真度问题根源:SELFIES的100%有效性是通过其解码算法强制实现的。当遇到可能导致化合价错误的指令时,算法会主动删除这些指令。补充材料(图S3)的分析表明,删除(deletion)是导致字符串不稳定的最主要原因,其中环和支链相关的标记最常被删除。这种纠错机制导致了生成分子的系统性偏差(如环更少、结构更简单),从而严重损害了对训练集性质分布的保真度。 3. ClearSMILES的性能:有效性与保真度的双重提升 ClearSMILES通过生成语法更简单的字符串来提升模型性能。作者通过图4和图5定量分析了其语法优越性。 图4:MOSES数据库中不同SMILES表示法的(a)支链长度分布直方图, (b)记忆分数和(c)主链token比例的核密度估计图。 更低的记忆分数:如图4b所示,ClearSMILES(橙色)的“记忆分数”分布集中在1.0以下,远低于标准SMILES(蓝色)。这定量地证明了ClearSMILES字符串的语法结构更简单,需要模型记忆的“未闭合”特征更少。 更短的支链:如图4a所示,ClearSMILES中的支链长度(括号对之间的token数)更短,长度超过10个token的支链比标准SMILES少52倍,这减少了长程依赖。 更线性的结构:如图4c所示,ClearSMILES的主链token比例更高,表明其编码的分子图遍历路径更接近线性。 图5:不同SMILES表示法中成对环数字的关联热图。 更简单的环结构:该热图显示了环数字(y轴)和闭环跨度(x轴,即两个相同数字间的token数)的分布。与标准SMILES(a)相比,ClearSMILES(c)极大地减少了长跨度的环闭合(图中右侧几乎为空白),并且使用的环数字更少(主要集中在1和2),表明其成功地将复杂的嵌套环结构“解耦”成了更简单的形式。 图6:所有VAE模型(22维潜空间)生成的有效样本的各项指标评估。 表6:VAE(22维潜空间)生成的样本与MOSES训练集的各项性质指标的Wasserstein距离。 | 模型 | TPSA | 分子量 | QED(类药性) | SA(合成可及性) | | :— | :— | :— | :— | :— | | SELFIES (无十六进制) | 7.798 | 6.805 | 0.115 | 1.316 | | SELFIES (无重载) | 10.094 | 6.693 | 0.141 | 1.315 | | 常规SELFIES | 4.363 | 7.017 | 0.112 | 1.258 | | RDKit默认规范SMILES | 4.716 | 7.149 | 0.041 | 0.430 | | ClearSMILES | 4.304 | 7.344 | 0.022 | 0.345 | 有效性的大幅提升:如表1所示,改用ClearSMILES后,VAE生成的无效分子比例从19.25%骤降至2.2%,综合有效性(Viability)从80.35%提升至96.89%。错误分析(图2a,橙色条)表明,ClearSMILES几乎完全消除了芳香性错误,并大幅减少了与环和括号相关的错误。 保真度的中度改善:如图6和表6所示,SMILES系列表示法在保真度上普遍优于SELFIES系列。特别是,SELFIES在类药性(QED)和合成可及性(SA)两个关键指标上与训练集(MOSES Dataset)的分布差异巨大。而ClearSMILES在标准SMILES的基础上,进一步缩小了与训练集在QED和SA上的差距(Wasserstein距离更小),表明其生成的分子在性质上更接近真实药物分子。 4. 更强模型的表现:MolGPT 图7:所有MolGPT模型(采样温度1.5)生成的有效样本的各项指标评估。 作者还使用了一个更强大的基于Transformer的MolGPT模型进行验证。结果(表3)显示,虽然MolGPT能将标准SMILES的有效性提升到90%以上,但ClearSMILES仍然能将其进一步提升至近95%。这表明,即使对于更强大的模型,一个更优的分子表示法依然能带来性能上的增益。 Q&A Q1: 什么是SMILES的“语法正确”但“化学无效”?可以举个例子吗? A1: 一个典型的例子是 C(C)(C)(C)(C)C。从SMILES的语法来看,它是完全正确的:一个中心碳原子,通过五个独立的括号,连接了五个甲基。所有括号都正确配对。然而,从化学角度看,它描述了一个六价的碳原子,这严重违反了化合价规则,因此是化学无效的。生成模型在学习SMILES时,学会了括号配对的语法规则,但很难同时掌握隐含在其中的、复杂的化合价规则,因此常常生成这类“语法通顺的胡言乱语”。 Q2: SELFIES号称100%有效,为什么论文说它的保真度低,甚至引入了“字符串不稳定性”的问题? A2: SELFIES的100%有效性是一种“程序正义”,是其解码算法强制保证的结果。当生成模型产生一个不合理的SELFIES序列时(例如,指令一个饱和碳原子再形成一个新键),解码器不会报错,而是会默默地忽略掉这个指令,以保证最终输出的分子化合价正确。这种“自作主张”的纠错机制,虽然保证了有效性,但也导致了信息丢失。补充材料的分析表明,超过90%的不稳定SELFIES在解码过程中都发生了token丢失,其中最常被删除的就是环和支链。模型本想生成一个复杂的分子,但最终可能被解码成一个简单的链状分子,这就是其保真度低的根本原因。 Q3: ClearSMILES的核心思想是“最小化长程依赖”,这对机器学习模型为什么如此重要? A3: “长程依赖”是指字符串中相互关联但位置相距很远的符号,在SMILES中典型的例子就是匹配的括号和环数字。例如 C1(...长长的链...)1,模型在处理到第二个1时,必须“记住”很久之前遇到的第一个1的上下文信息。对于RNN这类序列模型,存在“梯度消失”问题,很难学习到这种远距离的依赖关系。即使是基于注意力机制的Transformer,处理过多的、嵌套的长程依赖也会增加学习的负担。ClearSMILES通过筛选,找到那些环和支链的跨度尽可能短、嵌套尽可能少的SMILES变体,相当于把一篇“长难句”改写成了“简单句”,大大降低了模型的学习难度,从而减少了语法错误的产生。 Q4: 论文使用了相对简单的VAE模型,而不是最先进的Transformer。这是出于什么考虑?这个结论对更强大的模型也适用吗? A4: 作者特意选择了一个简单的RNNAttn-VAE模型,主要有三个原因: 轻量且快速,便于进行大量的对比实验; 可解释性强,简单的注意力机制更容易分析模型在学习什么; 凸显问题,一个简单的模型更能暴露分子表示法本身的内在缺陷。如果一个表示法在简单模型上表现很差,说明其本身就“难学”。 论文也用更强大的MolGPT(一种Transformer模型)进行了验证,结果表明,虽然强力模型能部分弥补表示法的缺陷(例如,将SMILES的有效性从80%提升到90%),但ClearSMILES依然能在其基础上带来进一步的提升(从90%到95%)。这说明,选择一个更优的分子表示法,对于任何水平的生成模型都是有益的,它能让强大的模型变得更强。 关键结论与批判性总结 核心结论 标准的SMILES表示法在用于生成模型时存在严重的有效性问题,约有20%的产出是化学无效分子,其中芳香性相关的错误是主因。 SELFIES表示法虽然通过其解码算法保证了100%的有效性,但代价是严重的保真度损失,生成的分子在性质上与训练集有显著偏差,且存在“字符串不稳定性”问题。 本文提出的ClearSMILES数据增强策略,通过使用Kekulé式表示芳香环和最小化长程依赖,显著提升了SMILES的可靠性,将无效分子率降低至2.2%,并中度改善了保真度。 即使对于更强大的Transformer模型,使用更优的分子表示法(如ClearSMILES)依然能带来性能上的提升。 潜在影响 为生成化学领域的研究者在选择和预处理分子表示法时提供了重要的基准和指导。 ClearSMILES作为一种简单有效的数据增强方法,可以被广泛集成到现有的基于SMILES的生成模型工作流中,直接提升模型的可靠性和产出质量。 存在的局限性 ClearSMILES的预处理过程需要额外的计算成本(尽管作者指出这是可并行的CPU密集型任务,成本可接受)。 研究主要在一个相对简单的VAE模型上凸显问题,虽然也在MolGPT上进行了验证,但在更大、更前沿的生成模型上的效果有待进一步探索。 Fidelity的评估主要基于几个理化性质,更复杂的生物活性或三维构象的保真度未被涉及。 未来研究方向 探索能够兼顾SELFIES的100%有效性和SMILES的更高保真度的新型分子表示法。 将ClearSMILES策略应用于更大型、更多样化的化学数据集,并与最前沿的生成模型(如扩散模型)相结合进行测试。
Machine Learning & AI
· 2025-10-08
分子表示语言模型全览:从蛋白质到小分子的语言模型
分子表示学习模型全览:从蛋白质到小分子的语言模型 分子表示学习已成为计算化学和生物信息学的核心技术。随着Transformer架构在自然语言处理中的成功,研究者们将其应用到分子数据的表示学习中,取得了显著进展。本文全面介绍从蛋白质到小分子的各种语言模型,为读者提供完整的技术栈和实用代码。 环境配置 基础依赖安装 # PyTorch安装(根据CUDA版本调整) pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126 # HuggingFace Transformers pip install transformers # 检查GPU可用性 python -c "import torch; print(f'CUDA Available: {torch.cuda.is_available()}'); print(f'GPU Count: {torch.cuda.device_count()}')" 可选:设置模型缓存路径 import os os.environ['TORCH_HOME'] = '/your/path/to/model' os.environ['HF_HOME'] = '/your/path/to/hf_model' 一、蛋白质语言模型 1.1 ESM-2系列 模型简介 ESM-2(Evolutionary Scale Modeling)是Meta开发的大规模蛋白质语言模型[1],在进化规模的蛋白质序列数据上进行预训练,能够捕获蛋白质的进化和结构信息。 可用模型规模 模型名称 层数 参数量 模型大小 esm2_t48_15B_UR50D 48 15B ~60GB esm2_t36_3B_UR50D 36 3B ~12GB esm2_t33_650M_UR50D 33 650M 2.5GB esm2_t30_150M_UR50D 30 150M ~600MB esm2_t12_35M_UR50D 12 35M ~140MB esm2_t6_8M_UR50D 6 8M ~32MB 安装和使用 pip install fair-esm import torch import esm # 检查GPU print("Number of GPUs:", torch.cuda.device_count()) # 加载模型(选择合适的规模) model, alphabet = esm.pretrained.esm2_t33_650M_UR50D() batch_converter = alphabet.get_batch_converter() model.eval() # 禁用dropout以获得确定性结果 # 如果有GPU,移动到GPU device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model = model.to(device) # 准备序列数据 data = [ ("protein1", "MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVLAGG"), ("protein2", "KALTARQQEVFDLIRDHISQTGMPPTRAEIAQRLGFRSPNAAEEHLKALARKGVIEIVSGASRGIRLLQEE"), ] # 批量转换 batch_labels, batch_strs, batch_tokens = batch_converter(data) batch_tokens = batch_tokens.to(device) batch_lens = (batch_tokens != alphabet.padding_idx).sum(1) # 提取表示 with torch.no_grad(): results = model(batch_tokens, repr_layers=[33], return_contacts=True) # 获取token表示(每个氨基酸的embedding) token_representations = results["representations"][33] # 获取序列级表示(整个蛋白质的embedding) sequence_representations = [] for i, tokens_len in enumerate(batch_lens): # 移除特殊token(开始和结束) seq_repr = token_representations[i, 1 : tokens_len - 1].mean(0) sequence_representations.append(seq_repr) print(f"Token representation shape: {token_representations.shape}") print(f"Sequence representation shape: {sequence_representations[0].shape}") 高级用法:注意力权重和接触预测 # 获取注意力权重和接触预测 with torch.no_grad(): results = model(batch_tokens, repr_layers=[33], return_contacts=True) # 接触预测(用于蛋白质结构预测) contacts = results["contacts"] print(f"Contacts shape: {contacts.shape}") # 注意力权重 attentions = results["attentions"] print(f"Attention shape: {attentions.shape}") 1.2 ESM-C (ESM Cambrian) 模型简介 ESM-C是ESM3模型家族中专注于表示学习的平行模型[2],相比ESM-2在相同参数量下提供更高效的性能和更低的内存消耗。ESM-C设计为ESM-2的直接替代品,具有重大性能优势。 性能对比 ESM-C参数量 对应ESM-2参数量 ESM-C优势 300M 650M 更低内存消耗,更快推理 600M 3B 高效达到甚至超越更大规模ESM-2性能 6B - 性能远超最佳ESM-2模型 安装和使用 pip install esm 方法一:使用ESM SDK API(推荐) from esm.sdk.api import ESMProtein, LogitsConfig from esm.models.esmc import ESMC # 创建蛋白质对象 protein = ESMProtein(sequence="MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVLAGG") # 加载模型(如果遇到tokenizer错误,使用方法二) try: client = ESMC.from_pretrained("esmc_600m").to("cuda") # 或 "cpu" # 编码蛋白质 protein_tensor = client.encode(protein) # 获取logits和embeddings logits_output = client.logits( protein_tensor, LogitsConfig(sequence=True, return_embeddings=True) ) print(f"Logits shape: {logits_output.logits.sequence.shape}") print(f"Embeddings shape: {logits_output.embeddings.shape}") # 提取序列级表示 sequence_embedding = logits_output.embeddings.mean(dim=1) # 平均池化 print(f"Sequence embedding shape: {sequence_embedding.shape}") except AttributeError as e: print(f"ESM-C错误: {e}") print("请使用方法二或方法三") If you see ESM-C错误: property 'cls_token' of 'EsmSequenceTokenizer' object has no setter please do this according to https://github.com/evolutionaryscale/esm/issues/214 pip install esm==3.1.1 The output is like Logits shape: torch.Size([1, 67, 64]) Embeddings shape: torch.Size([1, 67, 1152]) Sequence embedding shape: torch.Size([1, 1152]) 方法二:使用远程API(需要注册) from esm.sdk.forge import ESM3ForgeInferenceClient from esm.sdk.api import ESMProtein, LogitsConfig # 需要先在 https://forge.evolutionaryscale.ai 注册获取token forge_client = ESM3ForgeInferenceClient( model="esmc-6b-2024-12", url="https://forge.evolutionaryscale.ai", token="<your_forge_token>" ) protein = ESMProtein(sequence="MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVLAGG") protein_tensor = forge_client.encode(protein) logits_output = forge_client.logits( protein_tensor, LogitsConfig(sequence=True, return_embeddings=True) ) print(f"Remote embeddings shape: {logits_output.embeddings.shape}") 1.3 CARP 模型简介 CARP(Contrastive Autoregressive Protein model)是微软开发的蛋白质语言模型[3],采用对比学习和自回归训练目标,在蛋白质序列建模方面表现优异。 安装和使用 在线安装: pip install git+https://github.com/microsoft/protein-sequence-models.git 离线安装: 下载仓库:https://github.com/microsoft/protein-sequence-models 解压并安装: cd /path/to/protein-sequence-models pip install . 代码实现 from sequence_models.pretrained import load_model_and_alphabet # 加载模型和序列处理器 model, collater = load_model_and_alphabet('carp_640M') # 准备序列数据(注意:需要嵌套列表格式) seqs = [['MDREQ'], ['MGTRRLLP'], ['MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVLAGG']] # 将序列转换为模型输入格式 x = collater(seqs)[0] # (n, max_len) # 获取表示(第56层的表示) with torch.no_grad(): rep = model(x)['representations'][56] # (n, max_len, d_model) print(f"Input shape: {x.shape}") print(f"Representation shape: {rep.shape}") # 获取序列级表示(平均池化) sequence_repr = rep.mean(dim=1) print(f"Sequence representation shape: {sequence_repr.shape}") 1.4 ProtT5 模型简介 ProtT5是基于T5架构的蛋白质语言模型[4],采用编码器-解码器结构,在大规模蛋白质数据上预训练,支持多种下游任务。 从本地路径加载模型 import torch import re from transformers import T5Tokenizer, T5EncoderModel # 设备配置 device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') print(f"Using device: {device}") # 本地模型路径(如果已下载) tokenizer_path = '/your/path/to/prot_t5_xl_half_uniref50-enc/' # 加载tokenizer和模型 try: tokenizer = T5Tokenizer.from_pretrained(tokenizer_path, do_lower_case=False) print(f"Tokenizer loaded from local path: {tokenizer_path}") except OSError: # 如果本地路径不存在,从HuggingFace下载 tokenizer = T5Tokenizer.from_pretrained('Rostlab/prot_t5_xl_half_uniref50-enc', do_lower_case=False) print("Tokenizer loaded from HuggingFace") # 加载模型 model = T5EncoderModel.from_pretrained("Rostlab/prot_t5_xl_half_uniref50-enc").to(device) # 示例蛋白质序列 sequence_examples = ["PRTEINO", "SEQWENCE"] # 预处理:替换稀有氨基酸,添加空格 sequence_examples = [" ".join(list(re.sub(r"[UZOB]", "X", sequence))) for sequence in sequence_examples] # Tokenization ids = tokenizer(sequence_examples, add_special_tokens=True, padding="longest", return_tensors="pt") input_ids = ids['input_ids'].to(device) attention_mask = ids['attention_mask'].to(device) # 生成embeddings with torch.no_grad(): embedding_repr = model(input_ids=input_ids, attention_mask=attention_mask) # 提取每个序列的残基embeddings emb_0 = embedding_repr.last_hidden_state[0, :7] # 第一个序列 emb_1 = embedding_repr.last_hidden_state[1, :8] # 第二个序列 print("Shape of embedding for sequence 1:", emb_0.shape) print("Shape of embedding for sequence 2:", emb_1.shape) print("Protein embeddings generated successfully!") 1.5 Ankh 模型简介 Ankh是专门为阿拉伯语蛋白质序列优化的多语言蛋白质模型[5],基于T5架构,支持多种语言和蛋白质表示任务。 实现代码 from transformers import AutoTokenizer, AutoModelForSeq2SeqLM import torch # 本地模型路径 local_model_path = "/your/path/to/ankh-large/" # 加载tokenizer和模型 tokenizer = AutoTokenizer.from_pretrained(local_model_path) model = AutoModelForSeq2SeqLM.from_pretrained(local_model_path) # 示例序列 sequence_examples = ["MKTVRQERLKSIVRILERSKEPVSGAQLAEELSVSRQVIVQDIAYLRSLGYNIVATPRGYVLAGG"] inputs = tokenizer(sequence_examples, return_tensors="pt", padding=True) # 设备配置 device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') model = model.to(device) inputs = {key: value.to(device) for key, value in inputs.items()} # 生成编码器embeddings with torch.no_grad(): encoder_outputs = model.encoder(**inputs) embeddings = encoder_outputs.last_hidden_state # 提取有效序列的embeddings(移除padding) emb_0 = embeddings[0, :inputs['attention_mask'][0].sum()] print("Shape of encoder embeddings for sequence 1:", emb_0.shape) print("Model loaded successfully from:", local_model_path) 二、肽语言模型 2.1 PepBERT 模型简介 PepBERT是专门为肽序列设计的BERT模型[6],针对短肽序列进行优化,在肽-蛋白质相互作用预测等任务中表现优异。 模型特点 专门针对肽序列(通常长度较短) 基于BERT架构,采用掩码语言建模 在UniParc数据库的大规模肽序列上预训练 输出维度:320 安装和使用 import os import torch import importlib.util from tokenizers import Tokenizer # 设置环境变量 os.environ['TORCH_HOME'] = '/home/gxf1212/data/local-programs/model' os.environ['HF_HOME'] = '/home/gxf1212/data/local-programs/hf_model' # 本地模型路径 snapshot_path = "/home/gxf1212/data/local-programs/hf_model/hub/models--dzjxzyd--PepBERT-large-UniParc/snapshots/7b0cbb2f925d05c9fca42c63c1712f94200fdb41" def load_module_from_local(file_path): """从本地文件加载Python模块""" module_name = os.path.splitext(os.path.basename(file_path))[0] spec = importlib.util.spec_from_file_location(module_name, file_path) module = importlib.util.module_from_spec(spec) spec.loader.exec_module(module) return module # 1) 动态加载模型配置 model_module = load_module_from_local(os.path.join(snapshot_path, "model.py")) config_module = load_module_from_local(os.path.join(snapshot_path, "config.py")) build_transformer = model_module.build_transformer get_config = config_module.get_config # 2) 加载tokenizer tokenizer_path = os.path.join(snapshot_path, "tokenizer.json") tokenizer = Tokenizer.from_file(tokenizer_path) # 3) 加载模型权重 weights_path = os.path.join(snapshot_path, "tmodel_17.pt") # 4) 初始化模型 device = "cuda" if torch.cuda.is_available() else "mps" if torch.backends.mps.is_built() else "cpu" config = get_config() model = build_transformer( src_vocab_size=tokenizer.get_vocab_size(), src_seq_len=config["seq_len"], d_model=config["d_model"] ) # 加载预训练权重 state = torch.load(weights_path, map_location=torch.device(device)) model.load_state_dict(state["model_state_dict"]) model.eval() # 5) 生成embeddings def get_peptide_embedding(sequence): """生成肽序列的embedding""" # 添加特殊token [SOS] 和 [EOS] encoded_ids = ( [tokenizer.token_to_id("[SOS]")] + tokenizer.encode(sequence).ids + [tokenizer.token_to_id("[EOS]")] ) input_ids = torch.tensor([encoded_ids], dtype=torch.int64) with torch.no_grad(): # 创建注意力掩码 encoder_mask = torch.ones((1, 1, 1, input_ids.size(1)), dtype=torch.int64) # 前向传播获取token embeddings emb = model.encode(input_ids, encoder_mask) # 移除特殊token的embeddings emb_no_special = emb[:, 1:-1, :] # 平均池化获取序列级表示 emb_avg = emb_no_special.mean(dim=1) return emb_avg # 使用示例 sequence = "KRKGFLGI" embedding = get_peptide_embedding(sequence) print("Shape of peptide embedding:", embedding.shape) # (1, 320) print("Peptide embedding generated successfully!") 三、小分子语言模型 3.1 ChemBERTa系列 模型简介 ChemBERTa是首个大规模的分子BERT模型[7],在7700万PubChem分子上预训练,采用掩码语言建模目标,为分子性质预测提供强大的预训练表示。 主要版本 ChemBERTa-77M-MLM: 在77M分子上用掩码语言建模预训练 ChemBERTa-2: 改进版本,支持多任务预训练 参数量: 约12M-77M参数 安装和使用 # 安装依赖 pip install transformers torch rdkit from transformers import AutoTokenizer, AutoModel import torch from rdkit import Chem # 加载预训练模型 model_name = "DeepChem/ChemBERTa-77M-MLM" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModel.from_pretrained(model_name) # 设备配置 device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') model = model.to(device) def get_molecular_embedding(smiles_list): """获取分子的ChemBERTa embedding""" # Tokenization inputs = tokenizer(smiles_list, return_tensors="pt", padding=True, truncation=True, max_length=512) inputs = {key: value.to(device) for key, value in inputs.items()} # 前向传播 with torch.no_grad(): outputs = model(**inputs) # 使用[CLS] token的表示作为分子级表示 molecular_embeddings = outputs.last_hidden_state[:, 0, :] # [CLS] token # 或者使用平均池化 # molecular_embeddings = outputs.last_hidden_state.mean(dim=1) return molecular_embeddings # 使用示例 smiles_examples = [ "CCO", # 乙醇 "CC(=O)O", # 乙酸 "c1ccccc1", # 苯 "CN1C=NC2=C1C(=O)N(C(=O)N2C)C" # 咖啡因 ] # 验证SMILES有效性 valid_smiles = [] for smi in smiles_examples: mol = Chem.MolFromSmiles(smi) if mol is not None: valid_smiles.append(smi) else: print(f"Invalid SMILES: {smi}") # 生成embeddings embeddings = get_molecular_embedding(valid_smiles) print(f"Generated embeddings shape: {embeddings.shape}") print(f"Embedding dimension: {embeddings.shape[1]}") # 单个分子的embedding single_embedding = get_molecular_embedding(["CCO"]) print(f"Single molecule embedding shape: {single_embedding.shape}") 高级用法:微调ChemBERTa from transformers import AutoTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer import torch.nn as nn # 加载用于分类任务的模型 model = AutoModelForSequenceClassification.from_pretrained( "DeepChem/ChemBERTa-77M-MLM", num_labels=2 # 二分类任务 ) # 准备数据集和训练参数 class MolecularDataset(torch.utils.data.Dataset): def __init__(self, smiles_list, labels, tokenizer, max_length=512): self.smiles_list = smiles_list self.labels = labels self.tokenizer = tokenizer self.max_length = max_length def __len__(self): return len(self.smiles_list) def __getitem__(self, idx): smiles = self.smiles_list[idx] label = self.labels[idx] encoding = self.tokenizer( smiles, truncation=True, padding='max_length', max_length=self.max_length, return_tensors='pt' ) return { 'input_ids': encoding['input_ids'].flatten(), 'attention_mask': encoding['attention_mask'].flatten(), 'labels': torch.tensor(label, dtype=torch.long) } # 微调代码示例(需要准备训练数据) # training_args = TrainingArguments( # output_dir='./results', # num_train_epochs=3, # per_device_train_batch_size=16, # per_device_eval_batch_size=64, # warmup_steps=500, # weight_decay=0.01, # logging_dir='./logs', # ) 3.2 MolFormer系列 模型简介 MolFormer是IBM开发的大规模化学语言模型[8],在11亿分子上预训练,采用线性注意力机制和旋转位置编码,在多个分子性质预测任务上达到SOTA性能。 模型特点 预训练数据: 11亿分子(PubChem + ZINC) 架构: 线性注意力Transformer + 旋转位置编码 高效性: 线性时间复杂度,支持长序列 性能: 在多个基准数据集上超越GNN模型 安装和使用 git clone https://github.com/IBM/molformer.git cd molformer pip install -e . import torch from molformer.models import MolFormer from molformer.tokenizer import MolTranBertTokenizer # 加载预训练模型和tokenizer model_path = "ibm/MoLFormer-XL-both-10pct" # HuggingFace模型路径 tokenizer = MolTranBertTokenizer.from_pretrained(model_path) model = MolFormer.from_pretrained(model_path) # 设备配置 device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') model = model.to(device) model.eval() def get_molformer_embedding(smiles_list, max_length=512): """获取MolFormer分子embedding""" # Tokenization encoded = tokenizer( smiles_list, padding=True, truncation=True, max_length=max_length, return_tensors="pt" ) # 移动到设备 input_ids = encoded['input_ids'].to(device) attention_mask = encoded['attention_mask'].to(device) # 前向传播 with torch.no_grad(): outputs = model(input_ids=input_ids, attention_mask=attention_mask) # 使用最后一层的隐藏状态 hidden_states = outputs.last_hidden_state # 计算分子级表示(掩码平均池化) mask_expanded = attention_mask.unsqueeze(-1).expand(hidden_states.size()).float() sum_embeddings = torch.sum(hidden_states * mask_expanded, 1) sum_mask = torch.clamp(mask_expanded.sum(1), min=1e-9) molecular_embeddings = sum_embeddings / sum_mask return molecular_embeddings # 使用示例 smiles_examples = [ "CCO", "CC(=O)O", "c1ccccc1", "CN1C=NC2=C1C(=O)N(C(=O)N2C)C" ] embeddings = get_molformer_embedding(smiles_examples) print(f"MolFormer embeddings shape: {embeddings.shape}") print(f"Embedding dimension: {embeddings.shape[1]}") MolFormer-XL超大规模版本 # 对于MolFormer-XL(需要更多内存) model_xl_path = "ibm/MoLFormer-XL-both-10pct" tokenizer_xl = MolTranBertTokenizer.from_pretrained(model_xl_path) model_xl = MolFormer.from_pretrained(model_xl_path) # 使用混合精度以节省内存 model_xl = model_xl.half().to(device) # 使用半精度 # 对于大批量处理,建议分批处理 def batch_process_molecules(smiles_list, batch_size=32): """分批处理大量分子""" all_embeddings = [] for i in range(0, len(smiles_list), batch_size): batch = smiles_list[i:i+batch_size] embeddings = get_molformer_embedding(batch) all_embeddings.append(embeddings.cpu()) # 清理GPU缓存 torch.cuda.empty_cache() return torch.cat(all_embeddings, dim=0) 3.3 SMILES Transformer 模型简介 SMILES Transformer是首个专门为SMILES序列设计的Transformer模型[9],采用自编码任务进行预训练,学习分子的潜在表示,适用于低数据量的药物发现任务。 特点 预训练任务: 自编码(去噪自编码器) 数据: 170万ChEMBL分子(不超过100字符) SMILES增强: 使用SMILES枚举增加数据多样性 应用: 低数据药物发现 安装和使用 git clone https://github.com/DSPsleeporg/smiles-transformer.git cd smiles-transformer pip install -r requirements.txt import torch import torch.nn as nn from torch.nn import Transformer import numpy as np from rdkit import Chem class SMILESTransformer(nn.Module): """SMILES Transformer模型""" def __init__(self, vocab_size, d_model=512, nhead=8, num_layers=6, max_seq_len=100): super(SMILESTransformer, self).__init__() self.d_model = d_model self.embedding = nn.Embedding(vocab_size, d_model) self.pos_encoder = PositionalEncoding(d_model, max_seq_len) self.transformer = Transformer( d_model=d_model, nhead=nhead, num_encoder_layers=num_layers, num_decoder_layers=num_layers, dim_feedforward=2048, dropout=0.1 ) self.fc_out = nn.Linear(d_model, vocab_size) def forward(self, src, tgt=None, src_mask=None, tgt_mask=None): # 编码器 src_emb = self.pos_encoder(self.embedding(src) * np.sqrt(self.d_model)) if tgt is not None: # 训练模式(编码器-解码器) tgt_emb = self.pos_encoder(self.embedding(tgt) * np.sqrt(self.d_model)) output = self.transformer(src_emb, tgt_emb, src_mask=src_mask, tgt_mask=tgt_mask) return self.fc_out(output) else: # 推理模式(仅编码器) memory = self.transformer.encoder(src_emb, src_mask) return memory class PositionalEncoding(nn.Module): """位置编码""" def __init__(self, d_model, max_len=100): super(PositionalEncoding, self).__init__() pe = torch.zeros(max_len, d_model) position = torch.arange(0, max_len, dtype=torch.float).unsqueeze(1) div_term = torch.exp(torch.arange(0, d_model, 2).float() * (-np.log(10000.0) / d_model)) pe[:, 0::2] = torch.sin(position * div_term) pe[:, 1::2] = torch.cos(position * div_term) pe = pe.unsqueeze(0).transpose(0, 1) self.register_buffer('pe', pe) def forward(self, x): return x + self.pe[:x.size(0), :] class SMILESTokenizer: """SMILES分词器""" def __init__(self): # 基础SMILES字符集 self.chars = ['<PAD>', '<SOS>', '<EOS>', '<UNK>'] + list("()[]1234567890=+-#@CNOSPFIBrClcnos") self.char_to_idx = {char: idx for idx, char in enumerate(self.chars)} self.idx_to_char = {idx: char for char, idx in self.char_to_idx.items()} self.vocab_size = len(self.chars) def encode(self, smiles, max_length=100): """编码SMILES字符串""" tokens = ['<SOS>'] + list(smiles) + ['<EOS>'] indices = [self.char_to_idx.get(token, self.char_to_idx['<UNK>']) for token in tokens] # 填充或截断 if len(indices) < max_length: indices += [self.char_to_idx['<PAD>']] * (max_length - len(indices)) else: indices = indices[:max_length] return torch.tensor(indices, dtype=torch.long) def decode(self, indices): """解码回SMILES字符串""" chars = [self.idx_to_char[idx.item()] for idx in indices] # 移除特殊token chars = [c for c in chars if c not in ['<PAD>', '<SOS>', '<EOS>', '<UNK>']] return ''.join(chars) def get_smiles_embedding(smiles_list, model, tokenizer, device): """获取SMILES的分子embedding""" model.eval() embeddings = [] with torch.no_grad(): for smiles in smiles_list: # 编码SMILES encoded = tokenizer.encode(smiles).unsqueeze(0).to(device) # 获取编码器输出 encoder_output = model(encoded) # 平均池化获取分子级表示 # 忽略padding token mask = (encoded != tokenizer.char_to_idx['<PAD>']).float() pooled = (encoder_output * mask.unsqueeze(-1)).sum(dim=1) / mask.sum(dim=1, keepdim=True) embeddings.append(pooled) return torch.cat(embeddings, dim=0) # 使用示例 def demo_smiles_transformer(): """演示SMILES Transformer的使用""" # 初始化模型和分词器 tokenizer = SMILESTokenizer() model = SMILESTransformer(vocab_size=tokenizer.vocab_size) device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') model = model.to(device) # 示例SMILES smiles_examples = [ "CCO", "CC(=O)O", "c1ccccc1", "CN1C=NC2=C1C(=O)N(C(=O)N2C)C" ] # 验证SMILES valid_smiles = [] for smi in smiles_examples: if Chem.MolFromSmiles(smi) is not None: valid_smiles.append(smi) # 获取embeddings(注意:这里使用的是未训练的模型,仅用于演示) embeddings = get_smiles_embedding(valid_smiles, model, tokenizer, device) print(f"SMILES embeddings shape: {embeddings.shape}") return embeddings # 运行演示 # embeddings = demo_smiles_transformer() 3.4 SMILES-BERT 模型简介 SMILES-BERT是Wang等人开发的基于BERT的分子语言模型[10],专门设计用于处理SMILES序列,采用掩码SMILES恢复任务进行大规模无监督预训练。该模型使用基于注意力机制的Transformer层,能够有效捕获分子序列中的长程依赖关系。 模型特点 半监督学习: 结合大规模无标签数据预训练和下游任务微调 注意力机制: 基于Transformer的注意力机制捕获分子内原子关系 可迁移性: 预训练模型可轻松迁移到不同的分子性质预测任务 使用示例 # SMILES-BERT通常需要从源码安装或使用类似的实现 from transformers import AutoTokenizer, AutoModel import torch from rdkit import Chem def create_smiles_bert_embedding(smiles_list, model_name="DeepChem/ChemBERTa-77M-MLM"): """ 使用BERT-like模型生成SMILES embedding 注:这里使用ChemBERTa作为SMILES-BERT的替代实现 """ tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModel.from_pretrained(model_name) device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') model = model.to(device) # 验证SMILES valid_smiles = [smi for smi in smiles_list if Chem.MolFromSmiles(smi) is not None] # Tokenization和编码 inputs = tokenizer(valid_smiles, return_tensors="pt", padding=True, truncation=True, max_length=512) inputs = {key: value.to(device) for key, value in inputs.items()} # 生成embeddings with torch.no_grad(): outputs = model(**inputs) # 使用[CLS] token表示或平均池化 embeddings = outputs.last_hidden_state.mean(dim=1) # 平均池化 return embeddings # 使用示例 smiles_examples = ["CCO", "CC(=O)O", "c1ccccc1", "CN1C=NC2=C1C(=O)N(C(=O)N2C)C"] embeddings = create_smiles_bert_embedding(smiles_examples) print(f"SMILES-BERT embeddings shape: {embeddings.shape}") 3.5 Smile-to-Bert 模型简介 Smile-to-Bert是最新发布的BERT架构模型[11],专门预训练用于从SMILES表示预测113个分子描述符,将分子结构和理化性质信息整合到embeddings中。该模型在22个分子性质预测数据集上进行了评估,表现优异。 模型特点 多任务预训练: 同时预测113个RDKit计算的分子描述符 理化性质感知: embeddings包含分子结构和理化性质信息 最新技术: 2024年发布,代表最新的分子BERT技术 使用示例 # Smile-to-Bert的概念实现 from transformers import BertModel, BertTokenizer import torch from rdkit import Chem class SmileToBert: """Smile-to-Bert模型的概念实现""" def __init__(self, model_path="smile-to-bert"): """ 初始化Smile-to-Bert模型 注:实际使用需要从官方仓库获取预训练权重 """ # 这里使用通用BERT作为示例,实际应使用预训练的Smile-to-Bert权重 self.tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') self.model = BertModel.from_pretrained('bert-base-uncased') # 添加分子特定的特殊token special_tokens = ['[MOL]', '[BOND]', '[RING]'] self.tokenizer.add_tokens(special_tokens) self.model.resize_token_embeddings(len(self.tokenizer)) self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') self.model.to(self.device) def preprocess_smiles(self, smiles): """预处理SMILES字符串""" # 在SMILES中添加空格以便tokenization processed = ' '.join(list(smiles)) return processed def get_molecular_embedding(self, smiles_list): """获取分子的embedding""" # 预处理SMILES processed_smiles = [self.preprocess_smiles(smi) for smi in smiles_list] # Tokenization inputs = self.tokenizer( processed_smiles, return_tensors="pt", padding=True, truncation=True, max_length=512 ) inputs = {key: value.to(self.device) for key, value in inputs.items()} # 获取embeddings with torch.no_grad(): outputs = self.model(**inputs) # 使用[CLS] token或平均池化 embeddings = outputs.last_hidden_state[:, 0, :] # [CLS] token return embeddings # 使用示例 def demo_smile_to_bert(): """演示Smile-to-Bert使用""" # 初始化模型 smile_bert = SmileToBert() # 示例SMILES smiles_examples = [ "CCO", # 乙醇 "CC(=O)O", # 乙酸 "c1ccccc1", # 苯 "CN1C=NC2=C1C(=O)N(C(=O)N2C)C" # 咖啡因 ] # 验证SMILES有效性 valid_smiles = [] for smi in smiles_examples: if Chem.MolFromSmiles(smi) is not None: valid_smiles.append(smi) # 生成embeddings embeddings = smile_bert.get_molecular_embedding(valid_smiles) print(f"Smile-to-Bert embeddings shape: {embeddings.shape}") print("Note: 这是概念实现,实际使用需要官方预训练权重") return embeddings # 运行演示 # embeddings = demo_smile_to_bert() 3.6 MolBERT 模型简介 MolBERT是专门为化学领域定制的BERT模型[12],针对处理SMILES字符串进行了优化,能够提取丰富的上下文分子表示。该模型在大规模化学语料库上预训练,特别适合分子相似性搜索和药物发现任务。 模型特点 化学特异性: 专门为化学SMILES数据定制 双向上下文: 利用BERT的双向注意力机制 迁移学习: 在小数据集上表现优异 使用示例 import os import torch import yaml from typing import Sequence, Tuple, Union import numpy as np # 这里需要根据实际情况修改类的定义,为了代码完整,从原始文件中提取相关部分 class MolBertFeaturizer: def __init__( self, checkpoint_path: str, device: str = None, embedding_type: str = 'pooled', max_seq_len: int = None, permute: bool = False, ) -> None: super().__init__() self.checkpoint_path = checkpoint_path self.model_dir = os.path.dirname(os.path.dirname(checkpoint_path)) self.hparams_path = os.path.join(self.model_dir, 'hparams.yaml') self.device = device or 'cuda' if torch.cuda.is_available() else 'cpu' self.embedding_type = embedding_type self.output_all = False if self.embedding_type in ['pooled'] else True self.max_seq_len = max_seq_len self.permute = permute # load config with open(self.hparams_path) as yaml_file: config_dict = yaml.load(yaml_file, Loader=yaml.FullLoader) # 假设这里有一个简单的 logger 实现,实际使用时需要导入 logging 模块 class SimpleLogger: def debug(self, msg): print(msg) logger = SimpleLogger() logger.debug('loaded model trained with hparams:') logger.debug(config_dict) # 这里假设 SmilesIndexFeaturizer 已经定义,为了简化,省略其实现 class SmilesIndexFeaturizer: @staticmethod def bert_smiles_index_featurizer(max_seq_len, permute): return None # load smiles index featurizer self.featurizer = self.load_featurizer(config_dict) # 这里假设 SmilesMolbertModel 已经定义,为了简化,省略其实现 class SmilesMolbertModel: def __init__(self, config): self.config = config def load_from_checkpoint(self, checkpoint_path, hparam_overrides): pass def load_state_dict(self, state_dict): pass def eval(self): pass def freeze(self): pass def to(self, device): return self # load model from types import SimpleNamespace self.config = SimpleNamespace(**config_dict) self.model = SmilesMolbertModel(self.config) self.model.load_from_checkpoint(self.checkpoint_path, hparam_overrides=self.model.__dict__) # HACK: manually load model weights since they don't seem to load from checkpoint (PL v.0.8.5) checkpoint = torch.load(self.checkpoint_path, map_location=lambda storage, loc: storage) self.model.load_state_dict(checkpoint['state_dict']) self.model.eval() self.model.freeze() self.model = self.model.to(self.device) if self.output_all: self.model.model.config.output_hidden_states = True def load_featurizer(self, config_dict): # load smiles index featurizer if self.max_seq_len is None: max_seq_len = config_dict.get('max_seq_length') # 假设这里有一个简单的 logger 实现,实际使用时需要导入 logging 模块 class SimpleLogger: def debug(self, msg): print(msg) logger = SimpleLogger() logger.debug('getting smiles index featurizer of length: ', max_seq_len) else: max_seq_len = self.max_seq_len return SmilesIndexFeaturizer.bert_smiles_index_featurizer(max_seq_len, permute=self.permute) @staticmethod def trim_batch(input_ids, valid): # trim input horizontally if there is at least 1 valid data point if any(valid): _, cols = np.where(input_ids[valid] != 0) # else trim input down to 1 column (avoids empty batch error) else: cols = np.array([0]) max_idx: int = int(cols.max().item() + 1) input_ids = input_ids[:, :max_idx] return input_ids def transform(self, molecules: Sequence[Any]) -> Tuple[Union[Dict, np.ndarray], np.ndarray]: # 这里假设 self.featurizer.transform 已经实现 input_ids, valid = self.featurizer.transform(molecules) input_ids = self.trim_batch(input_ids, valid) token_type_ids = np.zeros_like(input_ids, dtype=np.long) attention_mask = np.zeros_like(input_ids, dtype=np.long) attention_mask[input_ids != 0] = 1 input_ids = torch.tensor(input_ids, dtype=torch.long, device=self.device) token_type_ids = torch.tensor(token_type_ids, dtype=torch.long, device=self.device) attention_mask = torch.tensor(attention_mask, dtype=torch.long, device=self.device) with torch.no_grad(): # 这里假设 self.model.model.bert 已经实现 outputs = self.model.model.bert( input_ids=input_ids, token_type_ids=token_type_ids, attention_mask=attention_mask ) if self.output_all: sequence_output, pooled_output, hidden = outputs else: sequence_output, pooled_output = outputs # set invalid outputs to 0s valid_tensor = torch.tensor( valid, dtype=sequence_output.dtype, device=sequence_output.device, requires_grad=False ) pooled_output = pooled_output * valid_tensor[:, None] # concatenate and sum last 4 layers if self.embedding_type == 'average-sum-4': sequence_out = torch.sum(torch.stack(hidden[-4:]), dim=0) # B x L x H # concatenate and sum last 2 layers elif self.embedding_type == 'average-sum-2': sequence_out = torch.sum(torch.stack(hidden[-2:]), dim=0) # B x L x H # concatenate last four hidden layer elif self.embedding_type == 'average-cat-4': sequence_out = torch.cat(hidden[-4:], dim=-1) # B x L x 4*H # concatenate last two hidden layer elif self.embedding_type == 'average-cat-2': sequence_out = torch.cat(hidden[-2:], dim=-1) # B x L x 2*H # only last layer - same as default sequence output elif self.embedding_type == 'average-1': sequence_out = hidden[-1] # B x L x H # only penultimate layer elif self.embedding_type == 'average-2': sequence_out = hidden[-2] # B x L x H # only 3rd to last layer elif self.embedding_type == 'average-3': sequence_out = hidden[-3] # B x L x H # only 4th to last layer elif self.embedding_type == 'average-4': sequence_out = hidden[-4] # B x L x H # defaults to last hidden layer else: sequence_out = sequence_output # B x L x H sequence_out = sequence_out * valid_tensor[:, None, None] sequence_out = sequence_out.detach().cpu().numpy() pooled_output = pooled_output.detach().cpu().numpy() if self.embedding_type == 'pooled': out = pooled_output elif self.embedding_type == 'average-1-cat-pooled': sequence_out = np.mean(sequence_out, axis=1) out = np.concatenate([sequence_out, pooled_output], axis=-1) elif self.embedding_type.startswith('average'): out = np.mean(sequence_out, axis=1) else: out = dict(sequence_output=sequence_out, pooled_output=pooled_output) return out, valid # 示例使用 if __name__ == "__main__": # 从 README 中获取预训练模型的下载链接 checkpoint_path = 'path/to/your/downloaded/checkpoint.ckpt' featurizer = MolBertFeaturizer(checkpoint_path=checkpoint_path) # 示例分子的 SMILES 字符串 smiles_list = ['CCO', 'CCN'] features, valid = featurizer.transform(smiles_list) print("Features:", features) print("Valid:", valid) 3.7 通用大语言模型在分子数据上的应用 LLaMA和GPT在SMILES上的应用 最近的研究表明,通用大语言模型如LLaMA和GPT在处理SMILES字符串方面表现出了惊人的能力[13]。这些模型虽然没有专门为化学领域设计,但其强大的语言理解能力使其能够有效处理分子表示。 性能对比 LLaMA: 在分子性质预测和药物-药物相互作用预测中表现优于GPT GPT: 虽然性能略逊于LLaMA,但仍能产生有意义的分子表示 与专用模型对比: LLaMA在某些任务上可与专门的分子预训练模型相媲美 使用示例 # 使用HuggingFace接口调用通用大语言模型 from transformers import LlamaTokenizer, LlamaModel, GPT2Tokenizer, GPT2Model import torch from rdkit import Chem class UniversalLLMForMolecules: """通用大语言模型用于分子表示学习""" def __init__(self, model_type='llama', model_name=None): """ 初始化通用LLM 参数: model_type: 'llama' 或 'gpt2' model_name: 具体模型名称 """ if model_type == 'llama': # 注意:需要申请LLaMA访问权限 model_name = model_name or "meta-llama/Llama-2-7b-hf" self.tokenizer = LlamaTokenizer.from_pretrained(model_name) self.model = LlamaModel.from_pretrained(model_name) elif model_type == 'gpt2': model_name = model_name or "gpt2" self.tokenizer = GPT2Tokenizer.from_pretrained(model_name) self.model = GPT2Model.from_pretrained(model_name) # GPT2需要设置pad_token self.tokenizer.pad_token = self.tokenizer.eos_token else: raise ValueError(f"Unsupported model type: {model_type}") self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') self.model.to(self.device) self.model.eval() def get_molecular_embeddings(self, smiles_list): """使用通用LLM获取分子embeddings""" # 验证SMILES valid_smiles = [] for smi in smiles_list: mol = Chem.MolFromSmiles(smi) if mol is not None: valid_smiles.append(smi) # 为SMILES添加描述性前缀以提高理解 prompted_smiles = [f"Molecule with SMILES: {smi}" for smi in valid_smiles] # Tokenization inputs = self.tokenizer( prompted_smiles, return_tensors="pt", padding=True, truncation=True, max_length=512 ) inputs = {key: value.to(self.device) for key, value in inputs.items()} # 生成embeddings with torch.no_grad(): outputs = self.model(**inputs) hidden_states = outputs.last_hidden_state # 使用平均池化获取序列级表示 attention_mask = inputs['attention_mask'].unsqueeze(-1) masked_embeddings = hidden_states * attention_mask embeddings = masked_embeddings.sum(dim=1) / attention_mask.sum(dim=1) return embeddings # 使用示例(需要相应的模型访问权限) def demo_universal_llm(): """演示通用LLM在分子数据上的应用""" try: # 使用GPT-2(更容易获取) llm = UniversalLLMForMolecules(model_type='gpt2', model_name='gpt2') smiles_examples = ["CCO", "CC(=O)O", "c1ccccc1"] embeddings = llm.get_molecular_embeddings(smiles_examples) print(f"Universal LLM embeddings shape: {embeddings.shape}") print("注意:通用LLM可能需要更多的提示工程以获得最佳性能") except Exception as e: print(f"Error loading universal LLM: {e}") print("请确保已安装相应的模型和权限") # demo_universal_llm() 四、模型对比与选择指南 4.1 主要模型对比表 类别 模型 参数量 输出维度 预训练数据规模 主要优势 适用场景 蛋白质 ESM-2 8M-15B 320-5120 250M序列 进化信息丰富,多规模选择 蛋白质结构预测、功能注释 ESM-C 300M-6B 1152 >1B序列 更高效率,更强性能 大规模蛋白质分析 CARP 640M 1280 ~1.7M序列 对比学习,自回归建模 蛋白质生成、设计 ProtT5 ~3B 1024 45M序列 T5架构,编码器-解码器 多任务蛋白质预测 Ankh ~3B 1536 多语言数据 多语言支持 跨语言蛋白质研究 肽 PepBERT ~300M 320 UniParc肽序列 专门优化短肽 肽-蛋白质相互作用 小分子 ChemBERTa 12M-77M 384-768 77M分子 首个分子BERT,成熟生态 分子性质预测 MolFormer 47M 512-768 1.1B分子 线性注意力,处理长序列 大规模分子筛选 SMILES Transformer ~10M 512 1.7M分子 自编码,低数据优化 小数据集药物发现 SMILES-BERT ~12M 768 大规模SMILES 掩码语言建模,半监督 分子性质预测 Smile-to-Bert ~110M 768 PubChem+113描述符 多任务预训练,理化性质感知 综合分子性质预测 MolBERT ~12M 768 化学语料库 化学特异性,双向上下文 分子相似性搜索 LLaMA (分子) 7B+ 4096+ 通用+SMILES 强大语言理解,泛化能力 复杂分子推理任务 GPT (分子) 175B+ 12288+ 通用+SMILES 生成能力强,对话式交互 分子生成和解释 4.2 性能与效率对比 计算资源需求 模型类别 内存需求 推理速度 训练复杂度 GPU要求 ESM-2 (650M) ~3GB 中等 高 V100/A100推荐 ESM-C (600M) ~2.5GB 快 中等 GTX 1080Ti可用 ChemBERTa ~500MB 快 低 GTX 1060可用 MolFormer ~1GB 快 中等 RTX 2080可用 SMILES-BERT ~500MB 快 中等 GTX 1060可用 Smile-to-Bert ~1GB 中等 中等 RTX 2080可用 MolBERT ~500MB 快 低 GTX 1060可用 LLaMA (7B) ~14GB 慢 极高 A100推荐 GPT (175B) >350GB 极慢 极高 多卡A100 准确性表现 蛋白质任务 结构预测: ESM-2 > ESM-C > ProtT5 功能预测: ESM-C ≥ ESM-2 > CARP 肽相互作用: PepBERT > 通用蛋白质模型 分子性质预测 通用性能: MolFormer > Smile-to-Bert > ChemBERTa-2 > ChemBERTa 小数据集: SMILES Transformer > SMILES-BERT > 大模型 多任务学习: Smile-to-Bert > MolBERT > ChemBERTa 理化性质: Smile-to-Bert > 传统描述符方法 通用推理: LLaMA > GPT > 专用模型(在某些复杂任务上) 4.3 选择建议 根据应用场景选择 蛋白质研究 结构生物学: ESM-2 (t33或更大) 大规模分析: ESM-C (600M) 蛋白质设计: CARP 多任务预测: ProtT5 小分子研究 药物发现: MolFormer或Smile-to-Bert 新药研发: ChemBERTa-2或MolBERT 分子生成: 结合GPT/LLaMA的方法 概念验证: ChemBERTa或SMILES Transformer 理化性质预测: Smile-to-Bert(专门优化) 肽研究 肽-蛋白质相互作用: PepBERT 抗菌肽设计: PepBERT + 微调 根据资源条件选择 高性能计算环境 推荐: ESM-2大模型、MolFormer-XL、LLaMA/GPT分子应用 优势: 最佳性能,支持复杂推理 标准工作站 推荐: ESM-C、ChemBERTa、MolFormer标准版、Smile-to-Bert 平衡性能与资源需求 资源受限环境 推荐: ESM-2小模型、SMILES Transformer、SMILES-BERT 确保基本功能 根据数据特点选择 大规模数据 使用预训练大模型: MolFormer、ESM-C、LLaMA/GPT 利用规模优势 小规模数据 使用专门优化的模型: SMILES Transformer、PepBERT、SMILES-BERT 或使用预训练+微调 特定领域 理化性质预测: Smile-to-Bert 短肽: PepBERT 分子生成: GPT/LLaMA方法 化学推理: 通用大语言模型 五、最佳实践与技巧 5.1 模型选择策略 原型阶段: 使用小模型快速验证想法 性能优化: 逐步升级到大模型 生产部署: 平衡性能与资源需求 特殊需求: 选择专门优化的模型 5.2 优化技巧 内存优化 # 使用混合精度 model = model.half() # 梯度检查点 model.gradient_checkpointing_enable() # 批处理优化 def batch_inference(data, model, batch_size=32): results = [] for i in range(0, len(data), batch_size): batch = data[i:i+batch_size] with torch.no_grad(): result = model(batch) results.append(result.cpu()) torch.cuda.empty_cache() return torch.cat(results) 速度优化 # 模型编译(PyTorch 2.0+) model = torch.compile(model) # TensorRT优化(NVIDIA GPU) import torch_tensorrt optimized_model = torch_tensorrt.compile(model) 5.3 实用工具函数 def standardize_molecular_input(smiles_list): """标准化分子输入""" from rdkit import Chem standardized = [] for smi in smiles_list: mol = Chem.MolFromSmiles(smi) if mol is not None: # 标准化SMILES canonical_smi = Chem.MolToSmiles(mol, canonical=True) standardized.append(canonical_smi) else: print(f"Invalid SMILES: {smi}") return standardized def validate_protein_sequence(sequence): """验证蛋白质序列""" valid_amino_acids = set('ACDEFGHIKLMNPQRSTVWY') return all(aa in valid_amino_acids for aa in sequence.upper()) def estimate_memory_usage(model_name, batch_size, sequence_length): """估算内存使用量""" memory_map = { 'esm2_t33_650M': lambda b, l: b * l * 1280 * 4 * 1e-9 + 2.5, 'chemberta': lambda b, l: b * l * 768 * 4 * 1e-9 + 0.5, 'molformer': lambda b, l: b * l * 768 * 4 * 1e-9 + 1.0, } if model_name in memory_map: estimated_gb = memory_map[model_name](batch_size, sequence_length) return f"Estimated memory usage: {estimated_gb:.2f} GB" else: return "Memory estimation not available for this model" 参考文献 [1] Lin Z, et al. Evolutionary-scale prediction of atomic-level protein structure with a language model. Science. 2023;379(6637):1123-1130. [2] EvolutionaryScale. ESM Cambrian: Focused on creating representations of proteins. 2024. Available: https://github.com/evolutionaryscale/esm [3] Rao R, et al. MSA Transformer. In: International Conference on Machine Learning. 2021:8844-8856. [4] Elnaggar A, et al. ProtTrans: towards cracking the language of Life’s code through self-supervised deep learning and high performance computing. IEEE Transactions on Pattern Analysis and Machine Intelligence. 2021;44(10):7112-7127. [5] ElNaggar A, et al. Ankh: Optimized protein language model unlocks general-purpose modelling. 2023. Available: https://huggingface.co/ElnaggarLab/ankh-large [6] Zhang H, et al. PepBERT: A BERT-based model for peptide representation learning. 2023. Available: https://github.com/dzjxzyd/PepBERT-large [7] Chithrananda S, Grand G, Ramsundar B. ChemBERTa: Large-scale self-supervised pretraining for molecular property prediction. arXiv preprint arXiv:2010.09885. 2020. [8] Ross J, et al. Large-scale chemical language representations capture molecular structure and properties. Nature Machine Intelligence. 2022;4(12):1256-1264. [9] Honda S, Shi S, Ueda HR. SMILES transformer: Pre-trained molecular fingerprint for low data drug discovery. 2019. Available: https://github.com/DSPsleeporg/smiles-transformer [10] Wang S, Guo Y, Wang Y, Sun H, Huang J. SMILES-BERT: Large scale unsupervised pre-training for molecular property prediction. Proceedings of the 10th ACM International Conference on Bioinformatics, Computational Biology and Health Informatics. 2019:429-436. [11] Barranco-Altirriba M, Würf V, Manzini E, Pauling JK, Perera-Lluna A. Smile-to-Bert: A BERT architecture trained for physicochemical properties prediction and SMILES embeddings generation. bioRxiv. 2024. doi:10.1101/2024.10.31.621293. [12] MolBERT: A BERT-based model for molecular representation learning. GitHub. Available: https://github.com/BenevolentAI/MolBERT [13] Al-Ghamdi A, et al. Can large language models understand molecules? BMC Bioinformatics. 2024;25:347. [14] Molecular Transformer. Schwaller P, et al. Molecular transformer: a model for uncertainty-calibrated chemical reaction prediction. ACS Central Science. 2019;5(9):1572-1583. [15] ST-KD. Li S, et al. Stepping back to SMILES transformers for fast molecular representation inference. 2021. Available: https://openreview.net/forum?id=CyKQiiCPBEv
Machine Learning & AI
· 2025-10-08
针对ADMET预测的分子描述符优化集:一项基于文献的元分析与设计方案
针对ADMET预测的分子描述符优化集:一项基于文献的元分析与设计方案 I. 引言:策划描述符集的理论依据 1.1 QSAR中高维度的挑战 在现代计算药物发现中,定量构效关系(Quantitative Structure-Activity Relationship, QSAR)和定量构性关系(Quantitative Structure-Property Relationship, QSPR)模型是评估候选药物吸收(Absorption)、分布(Distribution)、代谢(Metabolism)、排泄(Excretion)和毒性(Toxicity),即ADMET性质的核心工具 1。RDKit、PaDEL-Descriptor、Dragon和MOE等先进的化学信息学软件的出现,使得从单一分子结构中生成成百上千个分子描述符变得轻而易举 3。这些描述符涵盖了从简单的物理化学性质(如分子量、脂溶性)到复杂的拓扑和三维结构信息。 然而,这种特征生成能力的极大提升也带来了一个严峻的统计学挑战,即“维度灾难” 5。在典型的药物发现项目中,用于建模的数据集规模通常是中小型(几百到几千个化合物),而描述符的数量( p)远远超过化合物的数量(n),即所谓的“p≫n”问题。在这种高维场景下,直接使用全部描述符进行模型构建会引发一系列严重问题: 模型过拟合(Overfitting):模型会学习到训练数据中的随机噪声而非真实的构效关系,导致其在预测新分子时的泛化能力极差。 特征冗余与共线性(Redundancy and Collinearity):许多描述符之间存在高度相关性。例如,不同的方法计算出的分子体积或表面积描述符往往高度共线。这不仅增加了计算负担,还会使模型变得不稳定,难以解释 7。 计算成本高昂:训练一个包含数千个特征的模型需要大量的计算资源和时间,这在需要快速迭代的高通量虚拟筛选中是不可接受的。 可解释性降低:一个包含数千个变量的模型几乎不可能被人类理解,使得从模型中提取化学直觉和指导分子优化的过程变得异常困难。 大量研究表明,简单地将所有可用描述符“暴力”地输入机器学习算法,不仅效率低下,而且其预测性能往往不如经过精心特征选择后的简约模型 5。因此,从庞大的原始描述符池中筛选出一个信息量丰富、非冗余且具有普适性的子集,是构建稳健、高效且可解释的ADMET预测模型的关键前提。 1.2 “黄金描述符集”的价值主张 为了应对上述挑战,本报告旨在通过对已发表的成功研究案例进行系统性的元分析,设计出一系列经过精心策划的、非冗余的、信息量丰富的“黄金描述符集”。这些预定义的描述符集具有巨大的科学价值和实践意义: 标准化与可复现性:为ADMET建模提供一个标准化的、经过验证的起点,减少了研究人员在特征工程上的主观性和随意性,从而提高了研究的可复现性 2。 效率提升:通过预先筛选掉大量冗余和不相关的特征,极大地降低了模型训练的计算成本和时间,使研究人员能够更快速地进行模型迭代和评估。 性能与稳健性:这些集合基于大量成功案例的经验总结,旨在捕获对ADMET性质最关键的分子信息,从而在保证模型性能的同时,避免因维度过高而导致的过拟合风险,提升模型的稳健性。 知识提炼:本研究的核心目标是将过去5-10年间,发表在顶级期刊上的众多QSAR研究中蕴含的集体智慧,提炼并固化为一套具体、可操作的实践指南和工具 9。 本报告将首先系统性地回顾和整理近期ADMET建模研究中最终使用的描述符列表,然后通过元分析揭示其中的规律和模式,最后基于这些洞察,提出三套分别面向不同应用场景的、经过优化的分子描述符预设集合。 II. 当代ADMET建模中特征选择后描述符的系统性回顾 2.1 文献调研方法 为了构建一个坚实的证据基础,本次调研遵循了严格的文献筛选标准。调研范围限定在过去5-10年内,发表于主流化学信息学和药物化学期刊上的研究论文,包括但不限于《Journal of Chemical Information and Modeling》、《Journal of Medicinal Chemistry》、《Molecular Pharmaceutics》和《Bioinformatics》。筛选的论文必须是使用分子描述符构建用于ADMET性质预测(如溶解度、渗透性、血浆蛋白结合率、hERG抑制、细胞毒性等)的回归或分类模型,并且明确报告了经过特征选择后,最终用于构建模型的描述符列表 1。本研究只关注分子描述符,排除了分子指纹等其他特征表示方法。 2.2 证据基础:已发表ADMET QSAR模型中的最终描述符集 以下表格(表1)系统性地整理了从代表性研究中提取的关键信息。该表格是后续元分析的数据基础,它将零散发表的研究成果整合为一个统一的、可供分析的数据集。每一行代表一个已发表的、成功的QSAR模型,详细列出了其研究目标、数据规模、所用软件以及最核心的——最终被选入模型的描述符。 表1:已发表ADMET QSAR模型中使用的最终描述符集(代表性研究摘要) 参考文献 (作者, 年份, 期刊, DOI) 机器学习任务 数据集规模 描述符计算软件 最终使用的描述符列表 (经过特征选择后) Delaney, J.S. (2004), J. Chem. Inf. Comput. Sci., doi:10.1021/ci034243x 水溶性 (logS) 回归预测 ~2,874 In-house/Daylight clogP (计算的辛醇/水分配系数), MWT (分子量), RB (可旋转键数), AP (芳香原子比例) 12 Ghamali, M., et al. (2012), Mol. Divers., doi:10.1007/s11030-012-9416-8 血浆蛋白结合率 (%PPB) 回归预测 ~662 MOE, ACD/logD LogP, Q_VSA_NEG (总负范德华表面积), FiB7.4 (pH 7.4下碱性基团电离分数), GCUT_SLOGP_3, GCUT_PEOE_3 (电荷相关的GCUT描述符), FU7.4 (pH 7.4下未电离分数), Q_VSA_PPOS (总正极性范德华表面积), VAdjEq (顶点邻接信息) 13 Poongavanam, V., et al. (2022), Pharmaceutics, doi:10.3390/pharmaceutics14102046 Caco-2 细胞渗透性 (logPapp) 回归预测 ~4,900 RDKit (in KNIME) slogP (辛醇/水分配系数), TPSA (拓扑极性表面积), SMR (分子摩尔折射率), HallKierAlpha (Hall-Kier alpha值), Kappa3 (Kappa形状指数3) 14 Delre, P., et al. (2022), Front. Pharmacol., doi:10.3389/fphar.2022.951083 hERG 通道抑制 (分类) ~7,963 Dragon 7.0 由VSURF方法筛选出的79-86个描述符。类别包括:nCIC (环数), GATS1p (Geary自相关-滞后1/加权原子极化率), MATS2m (Moran自相关-滞后2/加权原子质量), Mor15v (3D-MoRSE-滞后15/加权原子范德华体积), HATS2u (GETAWAY-滞后2/未加权) 等。(注:完整列表见原文补充材料) 15 Arab, I., et al. (2023), J. Chem. Inf. Model., doi:10.1021/acs.jcim.3c01301 hERG 通道抑制 (分类) >12,000 RDKit/Custom 用于基准测试的大量描述符,最终模型常依赖组合。关键物理化学描述符被强调:MolWt, MolLogP, TPSA, NumHDonors, NumHAcceptors, NumRotatableBonds, NumAromaticRings, FractionCSP3 16 Ingle, B. L., et al. (2016), J. Chem. Inf. Model. (as cited in 18) 血浆蛋白结合率 (fu) 回归预测 ~1,045 未明确指定 强调了疏水性指数(如 LogP)作为最重要的特征 18。另一项研究分析了该模型,指出阳性极性表面积、碱性官能团数量和脂溶性是关键描述符 19。 Wang, J., et al. (2020), RSC Adv. (as cited in 20) Caco-2 细胞渗透性 (logPapp) 回归预测 ~1,000+ PaDEL-Descriptor 经过MDI和HQPSO选择后,强调了“H E-state”和氢键相关描述符的重要性 20。 Low, Y. S., et al. (2011), Chem. Res. Toxicol. (as cited in 21) 药物性肝损伤 (DILI) 分类 ~127 未明确指定 使用了化学描述符和毒理基因组学数据。仅使用化学描述符的模型外部验证正确率为61% 21。 2.3 关键研究的叙述性分析 表1中的数据揭示了ADMET建模领域从简单到复杂的发展轨迹和核心思想。 Delaney在2004年提出的ESOL模型是一个里程碑式的研究 12。尽管年代稍早,但其影响深远,至今仍被广泛引用和用作基准 22。该模型的卓越之处在于其极致的简约和强大的可解释性。仅使用四个基本且易于计算的描述符( clogP, MWT, RB, AP),通过简单的多元线性回归,就对数千种药物分子的水溶性给出了相当准确的预测。这四个描述符分别代表了分子的脂溶性、大小、柔性和芳香性,这四个方面构成了理解分子在水相中行为的基础。ESOL的成功证明,对于某些ADMET性质,抓住最核心的物理化学驱动力比堆砌大量复杂的描述符更为有效。 相比之下,对更复杂的生物过程的建模则需要更精细的描述符。例如,Poongavanam等人(2022)在预测Caco-2细胞渗透性时,除了经典的slogP和TPSA外,还引入了分子形状描述符(HallKierAlpha, Kappa3)和分子摩尔折射率(SMR) 14。这反映了分子要穿过细胞膜,不仅与其极性和脂溶性有关,还与其整体的形状、大小和柔性密切相关,这些因素共同决定了分子能否有效地“挤”过磷脂双分子层 14。 对于血浆蛋白结合率(PPB)*的预测,Ghamali等人(2012)的研究则突显了*分子电离状态的重要性 13。他们的模型中包含了在生理pH 7.4下的电离分数( FiB7.4, FU7.4)和电荷相关的表面积描述符(Q_VSA_NEG, Q_VSA_PPOS)。这是因为药物在血液中与血浆蛋白(主要是白蛋白和α1-酸性糖蛋白)的结合,在很大程度上取决于药物在该pH下的电荷状态——酸性药物倾向于与白蛋白结合,而碱性药物则与α1-酸性糖蛋白结合 13。这一发现被多项后续研究证实,强调了在模拟体内过程时考虑生理环境(如pH)的必要性 19。 而对于hERG钾通道抑制这一关键的心脏毒性终点,情况则更为复杂。hERG通道以其巨大而“混杂”(promiscuous)的结合口袋而闻名,能够容纳多种化学结构差异巨大的药物分子 26。因此,简单的物理化学性质往往不足以捕捉导致结合的关键特征。Delre等人(2022)的研究体现了这一点,他们从数千个Dragon描述符中,使用复杂的特征选择方法(VSURF),最终筛选出多达79-86个描述符,涵盖了拓扑、几何、3D-MoRSE和GETAWAY等多种类别 15。这表明,要准确预测hERG抑制,需要一个更丰富、更多样化的特征空间来描述分子的形状、静电势分布和原子间复杂的空间关系。Arab等人(2023)的研究也支持这一观点,他们通过对多种特征表示(包括描述符)进行基准测试,发现虽然基础的物理化学描述符(如 MolLogP, MolWt等)仍然重要,但高性能模型往往需要更复杂的特征组合 16。 III. 元分析:提炼描述符选择的指导原则 在系统性地整理了文献数据之后,本节将进行深入的元分析,旨在从这些看似零散的信息中发现普适性规律、总结核心趋势,并为后续的描述符集设计提炼出可操作的洞察。 3.1 “核心”物理化学描述符集的存在性 通过对表1及相关文献中“最终使用的描述符列表”进行横向比较,一个非常清晰的模式浮现出来:无论研究的ADMET终点是什么(溶解度、渗透性、PPB或毒性),一个由少数几个基本物理化学描述符组成的集合几乎总是出现。这个发现强烈地支持了一个“核心描述符集”的存在,它捕获了分子在任何生物系统中最基本的行为特征。 这个核心集通常包括: 脂溶性描述符(Lipophilicity): 以logP(辛醇/水分配系数)及其各种计算变体(如MolLogP, slogP, clogP)为代表。logP是QSAR领域中最常用、最重要的描述符之一,它直接量化了分子在极性(水)和非极性(脂质)环境中的分配倾向。这一性质主导了药物的膜通透性、与疏水性蛋白口袋的结合以及水溶性 12。 分子尺寸描述符(Size): 最常见的代表是分子量(Molecular Weight, MolWt)。它虽然简单,却是衡量分子大小、体积和扩散速率的一个有效代理。分子大小直接影响其能否通过细胞间隙、跨膜转运以及是否符合药物结合口袋的空间限制 12。 极性与氢键能力描述符(Polarity & Hydrogen Bonding): 这一类通常由拓扑极性表面积(Topological Polar Surface Area, TPSA)、氢键供体数(Number of Hydrogen Bond Donors, NumHDonors)和氢键受体数(Number of Hydrogen Bond Acceptors, NumHAcceptors)共同表征。TPSA衡量了分子表面极性区域的总和,是预测渗透性的关键参数。HBD和HBA的数量则决定了分子与水以及生物大分子(如蛋白、核酸)形成氢键的能力,这对于溶解、结合和转运至关重要 14。 分子柔性描述符(Flexibility): 主要由可旋转键数(Number of Rotatable Bonds, NumRotatableBonds)来量化。它描述了分子的构象灵活性。高柔性会带来熵罚,可能不利于受体结合,但适度的柔性又是分子适应结合口袋构象所必需的 12。 这组描述符并非偶然出现。它们正是构成利平斯基“五规则”(Lipinski’s Rule of Five)等经典药物相似性(drug-likeness)规则的基石 14。这表明,这些描述符所代表的物理化学性质——脂溶性、大小、极性和柔性——是决定一个分子能否成为药物的四个最基本的、不可或缺的维度。因此,任何通用的ADMET预测模型都应将这个核心集作为其特征空间的基础。 3.2 任务导向的描述符选择模式:超越核心集 尽管核心描述符集具有普适性,但高精度的预测模型往往需要在核心集的基础上,增加针对特定ADMET终点的“任务特异性”描述符。这些描述符能够捕捉到特定生物过程背后独特的物理或化学机制。 溶解度(Solubility)与渗透性(Permeability): 这两个性质都与分子如何与水和脂质环境相互作用密切相关。因此,除了核心集之外,模型常常受益于能够更精细地描述分子形状和饱和度的描述符。 形状描述符:Poongavanam等人的研究表明,Kappa形状指数(如Kappa3)和HallKierAlpha的加入显著提升了Caco-2渗透性模型的性能 14。Kappa指数能够量化分子的线性度、支链化和环状程度,这些都影响分子在膜中的排列和通过效率。 饱和度描述符:sp3杂化碳原子分数(FractionCSP3)是近年来备受关注的一个描述符。高FractionCSP3值通常意味着分子具有更三维的、非平面的结构,这与更好的溶解度和更低的脱靶毒性相关 16。 极性表面积:TPSA是预测渗透性的黄金标准之一,因为它直接关联到分子穿过极性头部进入非极性核心时需要克服的脱溶剂化能垒 14。 血浆蛋白结合(Plasma Protein Binding, PPB): PPB预测模型的一个显著特点是对分子在生理pH下的电离状态高度敏感。 电离相关描述符:Ghamali等人的模型明确包含了FiB7.4(pH 7.4下的碱性电离分数)和FU7.4(未电离分数) 13。其他研究也反复强调,使用在生理pH(7.4)下计算的描述符,特别是那些反映分子电荷的描述符(如 charge_at_pH7_4),对于准确预测与带电的血浆蛋白(白蛋白、α1-酸性糖蛋白)的结合至关重要 19。这是因为静电相互作用是药物-蛋白结合的主要驱动力之一。 hERG抑制(hERG Inhibition): hERG预测的挑战在于其结合口袋的“混杂性”,能够适应多种化学骨架 26。 复杂的拓扑和电子描述符:为了捕捉这种复杂的相互作用,模型需要超越简单的物理化学性质。Delre等人的研究表明,3D-MoRSE描述符(如Mor15v,编码分子三维结构信息)、GETAWAY描述符(如HATS2u,编码分子几何与原子属性的空间分布)以及自相关描述符(如GATS1p, MATS2m,描述原子属性在拓扑距离上的分布)等高级描述符是必要的 15。这些描述符能够更全面地刻画分子的静电场、形状和化学环境,从而识别出导致hERG结合的微妙特征。 这些任务特异性模式表明,一个“一刀切”的描述符集是不存在的。一个优秀的设计方案必须是分层的,既要包含一个通用的核心,也要提供针对特定任务的扩展模块。 3.3 维度约减与冗余控制的主流策略 成功的QSAR研究几乎无一例外地都采用了严格的特征选择流程来处理数千个原始描述符带来的高维度和共线性问题 5。这一流程通常是一个多步骤的级联过程,而非单一方法。 第一步:预处理与过滤(Filtering) 这是特征选择的第一道防线,也是最普遍采用的步骤。其目标是快速剔除明显无用或高度冗余的描述符。常见的过滤策略包括 4: 移除低方差特征:剔除那些在整个数据集中值几乎不变(常数或准常数)的描述符,因为它们不包含区分不同分子的信息。 移除高相关性特征:计算所有描述符之间的皮尔逊相关系数矩阵,当一对描述符的相关性超过一个预设阈值(通常是$ R > 0.75$ 到 0.95)时,保留其中一个(通常是与目标变量相关性更高的那个),剔除另一个。这能有效解决共线性问题。 第二步:高级特征选择(Wrapper/Embedded Methods) 经过初步过滤后,研究人员会采用更复杂的、基于算法的策略来筛选出最终的模型特征。 基于随机森林(Random Forest-based)的方法:这是文献中最流行和最成功的方法之一。随机森林算法在构建过程中,可以自然地评估每个特征的重要性。常用的方法有: Gini重要性/平均精度下降:通过计算每个特征对模型决策纯度或准确性的贡献来对其进行排序 6。 VSURF(Variable Selection Using Random Forests):这是一个专门的R包,它通过一个三步过程(筛选、解释、预测)来识别与响应变量相关的特征,并剔除冗余信息。Delre等人在其hERG研究中成功应用了此方法 15。 递归特征消除(Recursive Feature Elimination, RFE):该方法首先用所有特征训练一个模型,然后迭代地移除最不重要的特征,并重新训练模型,直到达到预设的特征数量。Poongavanam等人的研究中提到了RFE的应用 14。 嵌入式方法(Embedded Methods):一些学习算法本身就包含了特征选择的功能。例如,Lasso回归(通过L1正则化将不重要特征的系数压缩至零)和梯度提升机(Gradient Boosting Machines)(如XGBoost)在构建模型的同时也在进行隐式的特征选择。 一个值得注意的细微之处是,一些研究指出,对于像随机森林和支持向量机(SVM)这样本身就很稳健的现代学习算法,外部的特征选择步骤可能不会显著提升模型的预测准确度 5。然而,这种观点需要结合具体情况来看。对于数据集较小、模型较简单(如多元线性回归)或模型可解释性至关重要的场景,特征选择是不可或缺的。特别是对于像hERG抑制或Tox21这类具有高度类别不平衡或复杂构效关系的挑战性任务,有效的特征选择被证明是获得高性能模型的关键 5。 综合来看,最佳实践是一个组合策略:先用简单的过滤器进行快速降维和去相关,再用强大的、基于算法的方法(如VSURF)进行最终的特征精选。 IV. 分层、非冗余描述符集的设计与原理 基于上述文献调研和元分析的深度洞察,本节将所有发现转化为具体、可操作的设计方案。我们提出三套由简到繁、非冗余且经过优化的分子描述符预设集合。每一套集合都有明确的设计理念、理论依据和适用场景,旨在为不同阶段和不同需求的药物发现任务提供最优的起点。 4.1 集合A:“轻量核心集”(The Lightweight Core Set) 设计哲学:追求极致的速度、最高的模型可解释性以及在小数据集上的稳健性。该集合是元分析中发现的“核心描述符集”的直接体现,旨在成为一个快速、可靠、且不易过拟合的基线模型特征集。 适用场景: 对数百万级别化合物库进行超快速的初步虚拟筛选。 构建简单、直观的QSAR模型(如多元线性回归、决策树),以便于化学家理解和提取化学直觉。 处理小规模数据集(例如,化合物数量 < 500),此时避免模型过拟合是首要任务。 描述符列表与理论依据: 描述符名称 类别 描述符含义与入选依据 MolWt 1D-物理化学 分子量。最基本的大小描述符,频繁出现于各类ADMET模型中,如ESOL 12。 MolLogP 1D-物理化学 辛醇/水分配系数。衡量脂溶性的黄金标准,几乎是所有ADMET性质预测的必备描述符 12。 TPSA 1D-物理化学 拓扑极性表面积。衡量分子极性的关键指标,尤其对渗透性和溶解度至关重要 14。 NumHDonors 1D-物理化学 氢键供体数。与TPSA和NumHAcceptors共同定义了分子的氢键能力和极性相互作用潜力 14。 NumHAcceptors 1D-物理化学 氢键受体数。同上,是利平斯基规则的核心组成部分,与脱溶剂化能和受体结合密切相关 14。 NumRotatableBonds 1D-物理化学 可旋转键数。衡量分子构象柔性的标准描述符,影响结合熵和跨膜能力 12。 FractionCSP3 1D-物理化学 sp3杂化碳原子分数。现代药物设计中日益重要的描述符,高FractionCSP3与更好的溶解度、代谢稳定性和更低的脱靶效应相关,代表了分子的三维复杂性 16。 NumAromaticRings 1D-物理化学 芳香环数量。衡量分子的芳香性和平面性,与MolLogP互补,对代谢(CYP酶作用)和一些毒性(如hERG)有重要影响。 4.2 集合B:“均衡性能集”(The Balanced Performance Set) 设计哲学:在“轻量核心集”的基础上,增加一系列经过验证的、针对特定ADMET任务(尤其是渗透性、溶解度和PPB)的“任务特异性”描述符,以在不显著增加计算成本和复杂性的前提下,获得更优的预测性能。 适用场景: 作为大多数通用ADMET建模项目的默认推荐特征集。 适用于中等规模数据集(例如,500-5000个化合物)的建模任务。 当目标是在模型预测精度和计算效率之间取得最佳平衡时。 描述符列表与理论依据: 该集合包含集合A的全部描述符,并额外增加以下描述符: 描述符名称 类别 描述符含义与入选依据 SMR 1D-物理化学 分子摩尔折射率。与分子体积和极化率相关,能够补充MolWt对分子大小的描述,已被证明对渗透性预测有益 14。 Kappa1, Kappa2, Kappa3 2D-拓扑 Kappa形状指数。描述分子的拓扑形状,如线性度、支链度和环状度。对需要穿越生物膜的渗透性预测尤其重要 14。 pKa_strongest_acidic 1D-物理化学 最强酸性pKa。量化分子的酸性强度,是计算生理pH下电离状态的基础。 pKa_strongest_basic 1D-物理化学 最强碱性pKa。量化分子的碱性强度,同上。 charge_at_pH7_4 1D-物理化学 在pH 7.4下的净电荷。直接模拟分子在血浆中的电荷状态,对预测PPB至关重要,因为静电作用是药物与血浆蛋白结合的关键驱动力 13。 BalabanJ 2D-拓扑 Balaban J指数。一个高度不相关的拓扑指数,用于衡量分子的支链程度和中心性,常在特征选择后的模型中出现,能提供独特的拓扑信息。 MaxAbsEStateIndex 2D-电性拓扑 最大绝对E-State指数。E-State指数结合了原子的电子信息和拓扑环境,该描述符反映了分子中电正性或电负性最强的区域,与分子的反应活性位点相关。 MinAbsEStateIndex 2D-电性拓扑 最小绝对E-State指数。同上,反映了分子中电性最中性的区域。 4.3 集合C:“全面特征集”(The Comprehensive Feature Set) 设计哲学:为解决复杂预测任务(如hERG抑制、细胞毒性)或进行探索性特征工程研究,提供一个信息量最大化的起点。该集合并非设计用于直接建模,而是一个经过精心策划和去冗余的“特征池”,用户应在此基础上结合强大的特征选择算法(如VSURF)来构建最终模型。 适用场景: 针对具有复杂或混杂作用机制的靶点(如hERG通道、细胞毒性终点)进行建模。 处理大规模数据集(> 5000个化合物),有足够的数据支撑更复杂的模型。 研究人员希望探索新的构效关系,寻找非经典描述符的重要性。 描述符列表与推荐工作流: 该集合包含集合B的全部描述符,并额外增加约100-150个经过筛选的2D描述符。这些描述符从RDKit和PaDEL等工具生成的数千个描述符中选出,剔除了明显的冗余(如多个软件计算的同一性质)和共线性(预先进行相关性过滤,∣R∣<0.9)。其类别包括: 拓扑描述符:WienerIndex、ZagrebIndex、AvgIpc等,描述分子骨架的连接性。 连接性指数:Chi0v, Chi1n, Chi3v等一系列Chi指数,量化分子的支链和复杂性。 电性拓扑状态(E-State)指数:完整的原子类型E-State指数(如S_ssCH2, S_dO等),以及它们的和、平均值、最大/最小值。这些描述符对模拟分子内电子分布和反应性位点非常有效 20。 自相关描述符:ATS (Moreau-Broto), MATS (Moran), GATS (Geary)等不同权重(如原子质量、极化率、电负性)和不同拓扑距离(lag 1-8)的自相关描述符。这些描述符能捕捉到原子属性在分子内的空间分布规律,对于hERG等复杂靶点尤其重要 15。 电荷描述符:除了charge_at_pH7_4,还包括部分电荷的均值、方差等统计量。 官能团与片段计数:对特定官能团(如fr_nitro, fr_amide)的计数。 推荐工作流: 使用集合C计算所有分子的描述符。 对训练集应用一个强大的特征选择算法,例如VSURF 15 或结合了梯度提升的 递归特征消除(RFE-XGBoost)。 使用筛选出的最优特征子集来训练最终的机器学习模型。 4.4 提议的优化描述符集总结 下表(表2)直观地总结了三套提议的描述符集的内容和递进关系。 表2:为ADMET建模提议的优化描述符集 集合A: 轻量核心集 集合B: 均衡性能集 集合C: 全面特征集 MolWt 包含集合A的全部描述符 包含集合B的全部描述符 MolLogP SMR WienerIndex TPSA Kappa1 ZagrebIndex NumHDonors Kappa2 全套 Chi 连接性指数 NumHAcceptors Kappa3 全套原子类型 E-State 指数 NumRotatableBonds BalabanJ 全套 Moreau-Broto 自相关描述符 FractionCSP3 pKa_strongest_acidic 全套 Moran 自相关描述符 NumAromaticRings pKa_strongest_basic 全套 Geary 自相关描述符 charge_at_pH7_4 各种 BCUT 和 GCUT 描述符 MaxAbsEStateIndex 详细的官能团计数 MinAbsEStateIndex …以及约100个其他经过筛选的2D描述符 (共8个描述符) (共约18个描述符) (约150-200个描述符的特征池) V. 结论与前瞻 本次研究通过对过去十年间ADMET建模领域的权威文献进行系统性的挖掘和元分析,成功地应对了在QSAR研究中普遍存在的特征维度过高和冗余的挑战。分析结果清晰地揭示了几个关键的指导原则: 核心描述符的普适性:存在一个由少数基本物理化学性质(脂溶性、大小、极性、柔性、饱和度)构成的“核心描述符集”,它在各种ADMET性质预测中都表现出高度的相关性。 任务特异性的必要性:对于特定的生物终点,如血浆蛋白结合或hERG抑制,高精度模型必须在核心集的基础上,引入能够捕捉其独特生物物理机制的特异性描述符(如电离状态或复杂的拓扑电子特征)。 特征选择流程的重要性:成功的QSAR建模依赖于一个系统化的特征选择流程,通常始于简单的相关性和方差过滤,继而采用基于机器学习算法(特别是随机森林)的先进方法进行最终的特征精选。 基于这些原则,本报告设计并提出了三套分层的、非冗余的“黄金描述符集”——轻量核心集(A)、均衡性能集(B)*和*全面特征集(C)。这三套集合为不同复杂程度和需求的ADMET建模任务提供了经过验证的、标准化的、且高效的起点。它们将大量分散的文献知识固化为一套可直接应用的工具,旨在提升药物发现流程中计算预测的效率、稳健性和可复现性。 展望未来,化学信息学领域正处在不断演进之中。虽然本报告的设计方案基于当前文献中得到最广泛验证和应用的2D描述符,但未来的“黄金描述符集”无疑将融合新的技术进展。随着计算能力的提升和算法的成熟,三维(3D)描述符(如分子形状和药效团距离)将扮演更重要的角色。更令人兴奋的是,深度学习衍生的“学习”描述符,例如从图神经网络(GNN)或化学自编码器(autoencoder)的潜在空间(latent space)中提取的特征向量,展现出巨大的潜力 22。这些方法能够自动从数据中学习到高度信息化的特征表示,可能超越人类手工设计的描述符。当这些新兴方法的最佳实践在文献中得到更广泛的建立和验证后,将它们整合到下一代的优化描述符集中,将是推动ADMET预测能力迈向新高度的关键一步。
Machine Learning & AI
· 2025-10-08
黑箱的透明化:通过原子敏感性分析实现可解释的pKa预测模型
“黑箱”的透明化:BCL-XpKa通过原子敏感性分析实现可解释的pKa预测模型 Title: Interpretable Deep-Learning pKa Prediction for Small Molecule Drugs via Atomic Sensitivity Analysis Authors: Joseph DeCorte,* Benjamin Brown, Rathmell Jeffrey, and Jens Meiler https://doi.org/10.1021/acs.jcim.4c01472 Cite This: J. Chem. Inf. Model. 2025, 65, 101-113 一、 论文整体概览 1. 摘要、背景与科学问题 摘要翻译 机器学习(ML)模型如今在预测药物研发所必需的性质方面扮演着至关重要的角色,例如药物的对数尺度酸解离常数(pKa)。尽管近期在架构上取得了进展,但由于缺乏基准真实数据,这些模型在面对新化合物时常常泛化能力不佳。此外,这些模型也缺乏可解释性。为此,通过精心设计的分子嵌入,可以通过观察模型对输入分子进行原子扰动后的响应,来获取化学结构中的原子级分辨率信息。在此,我们提出了BCL-XpKa,一个基于深度神经网络(DNN)的多任务分类器,用于pKa预测,它通过Mol2D描述符来编码局部原子环境。BCL-XpKa为每个分子输出一个离散分布,该分布存储了pKa预测值以及模型对该分子的不确定性。BCL-XpKa能很好地泛化到新的小分子上,其性能与现代ML pKa预测器相当,在泛化任务中优于多个模型,并能准确模拟常见分子修饰对分子可电离性的影响。然后,我们通过原子敏感性分析(ASA)利用BCL-XpKa的精细描述符集和以分布为中心的输出,该分析无需重新训练模型即可将分子的预测pKa值分解为其各自的原子贡献。ASA揭示了BCL-XpKa已经隐式地学习到了关于分子亚结构的高分辨率信息。我们进一步通过在93.2%的复杂小分子酸和87.8%的碱中识别电离位点,展示了ASA在为蛋白质-配体对接准备结构方面的效用。最后,我们应用带有BCL-XpKa的ASA方法,识别并优化了一款最近发表的KRAS降解PROTAC的物理化学缺陷。 背景 在计算辅助药物研发领域,准确预测化合物在体内的行为(如生物利用度、溶解度等)对于节约研发时间和成本至关重要。其中,分子的酸解离常数(pKa)是一个决定其在生理pH下电离状态的关键物理化学性质,深刻影响着药物的吸收、分布、代谢、排泄和毒性(ADMET)。 传统的预测方法中,量子力学(QM)计算能够提供与实验相当的精度,但其巨大的计算成本使其无法应用于药物发现早期阶段对数以亿计化合物的虚拟高通量筛选(vHTS)。因此,机器学习(ML)方法,特别是定量结构-活性/性质关系(QSAR/QSPR)模型,因其极高的预测速度而成为主流。这些模型通过分子指纹或图神经网络(GNNs)等方式将化学结构转化为数学表示,并学习结构与性质之间的关系。 本文解决的科学问题总结 尽管ML方法取得了巨大成功,但仍面临两大核心挑战,这也是本文着力解决的科学问题: 性能与泛化问题:现有的ML模型大多依赖于数量有限的高质量实验数据进行训练,这常常导致模型在面对训练集中未见过的、新颖的化学骨架时泛化能力差,容易过拟合。 可解释性问题:大多数先进的ML模型(尤其是深度学习模型)如同一个“黑箱”,我们很难理解模型是基于分子的哪些具体结构特征做出某一特定预测的。这种可解释性的缺乏阻碍了我们对模型预测结果的信任,也使得我们难以从模型的“智慧”中获得化学洞见来指导后续的药物设计。 本文旨在通过创新的模型架构(BCL-XpKa)和新颖的可解释性分析方法(ASA)来同时应对这两个挑战。 mindmap root(可解释性pKa预测分析思路) )为可解释性服务的模型架构( ::icon(fa fa-cogs) **多任务分类(MTC)架构** **核心思路**<br/>预测pKa落入离散区间的概率分布 **关键产出**<br/>输出**概率分布**而非单个值<br/>为ASA提供可比较的分布 **附加价值**<br/>分布的标准差可作为**模型不确定度** **局部原子描述符(Mol2D)** **核心思路**<br/>仅编码原子及其一阶邻居<br/>使模型对单原子扰动更敏感 **关键特性**<br/>**可逆性**:描述符可直接映射回化学亚结构<br/>是实现归因分析的基础 )原子敏感性分析(ASA)( ::icon(fa fa-atom) **核心方法:基于扰动的归因** **扰动方式**<br/>将目标杂原子替换为同构的碳原子 **差异量化**<br/>用**KL散度**衡量扰动前后<br/>模型输出的pKa概率分布差异 **分数计算**<br/>通过指数函数放大KL散度<br/>得到最终ASA分数 **应用一:识别关键电离位点** **做法**<br/>寻找分子中ASA分数最高的原子 **结论**<br/>高分原子大概率是主要质子化或去质子化位点 **价值**<br/>快速标注分子质子态<br/>用于对接或MD模拟前的结构准备 **应用二:洞察模型学习到的化学知识** **做法**<br/>分析特定亚结构在不同化学环境下的ASA分数变化 **化学原理验证**<br/>**诱导效应**:邻近吸电子或给电子基团<br/>会相应降低或提高碱性氮的ASA分数 **上下文理解**<br/>模型能区分局部环境相同但整体有别的基团<br/>(如咪唑 vs. 吲哚) **研究启发**<br/>验证模型是否学到真实的化学规则<br/>增加对“黑箱”预测的信任 **应用三:指导先导化合物优化** **完整工作流**<br/>1. **定位缺陷**:用ASA找到导致不良pKa的原子<br/>2. **提出方案**:对高分原子进行生物电子等排替换<br/>3. **快速验证**:用模型预测新分子的pKa<br/>4. **结构确认**:用对接等方法确认活性 2. BCL-XpKa 模型简介 作者首先构建了一个名为 BCL-XpKa 的pKa预测模型,其核心是一个多层感知机(MLP)。该模型的设计巧妙,集成了几个关键特性: 分类而非回归(Multitask Classification, MTC):不同于传统模型直接预测一个连续的pKa值,BCL-XpKa将pKa范围划分为多个离散的“桶”(bins),并预测分子的pKa值落入每个“桶”的概率。最终的pKa值是这个概率分布的期望值。这种做法的好处是: 可以直接从输出分布的标准差中读出模型对预测的不确定度。 通过识别模型在哪些分子上表现出“高不确定性”或“高置信度但高错误率”,可以指导训练数据的优化。 在性能上与回归模型相当,甚至略优。 双模型架构:为了处理既有酸性基团又有碱性基团的复杂分子,作者分别训练了 BCL-XpKaAcid 和 BCL-XpKaBase 两个模型,用于分别预测一个分子中酸性最强和碱性最强的pKa值。 图1:BCL-XpKa的架构评估 (A) BCL-XpKa 使用独立的模型来预测分子的酸性和碱性pKa值。它使用 Mol2D 局部原子环境描述符来嵌入分子,然后使用一个多层感知机(MLP)来对pKa值所属的1-pKa单位区间进行分类。区间边缘交替包含和不包含端点。极值区间(pKa≤0, pKa>12)在其无界的一侧是开放的。 (B) 用于pKa预测的多任务分类误差随“桶”尺寸的增加而变化。小的“桶”允许更高的精度,但每个桶的数据更少;而大的“桶”精度较低,但每个桶的数据更多。 (C) BCL-XpKa与使用相同分子描述符和训练集训练的最佳性能回归架构在两个外部测试集上的性能对比。 (D) “留下一类” (leave-class-out, LCO) 方法,其中一种分子亚结构被从模型训练中移除,并在之后用作结构新颖的测试集。 (E) 模型误差由LCO亚结构和描述符类型决定。 (F) LCO亚结构的误差与包含该亚结构的TS-Acid或TS-Base分子数量的关系。 3. Mol2D 描述符为何对 ASA 至关重要? BCL-XpKa模型选择使用 Mol2D 描述符 而非更复杂的GNN,这是实现原子级别可解释性(ASA)的基石。参考其原始论文 BCL::Mol2D—a robust atom environment descriptor for QSAR modeling and lead optimization,Mol2D 的核心优势在于其设计上的简洁性与可逆性。 核心定义:Mol2D的核心是原子环境(Atom Environment, AE)。一个 AE 是以某个原子为中心,包含其周围一定化学键距离内的原子及其成键信息。BCL-XpKa使用的是 height=1 的AE,这意味着它只考虑中心原子和与它直接相连的邻居原子。 与传统指纹的关键区别: 计数而非存在与否:传统指纹(如 Molprint2D)通常是二进制的,只记录某种AE是否“存在”。而 BCL::Mol2D 是一个计数向量,它记录了分子中每种特定AE出现的次数。这提供了更丰富的信息,例如可以区分五元环和六元环。 细粒度的原子类型:Mol2D 不仅考虑元素类型,还考虑了原子的杂化状态/轨道构型(’Atom type’ 编码),这使得它能够区分同样是氮原子,但在不同化学环境下的细微差别。 通用 AE 库:BCL::Mol2D 的描述符向量的每一个维度都对应一个从大型化合物库(超过90万个类药分子)中预先构建好的“通用AE库”中的特定AE。这意味着描述符的索引是固定的,任何分子都可以被映射到这个统一的向量空间中。 可逆性(Reversibility)——实现ASA的关键: 这是 Mol2D 最重要的特性。由于描述符向量的每个索引都唯一地、固定地对应着一个具体的化学亚结构(即一个AE),我们可以从描述符向量反推回它所代表的化学结构。 这种清晰的“描述符-结构”对应关系,使得当我们扰动一个原子时,我们能精确知道是哪些维度的描述符发生了变化。这为衡量模型对特定原子变化的敏感度提供了直接、无歧义的途径。 相比之下,许多复杂的GNN模型其内部表示(节点嵌入)是经过多轮信息传递后高度抽象化的向量,难以直接映射回具体的、独立的原子或化学键贡献,从而使原子级别的归因分析变得非常困难。 4. BCL-XpKa 模型性能与表现总结 BCL-XpKa模型尽管采用了相对简单的多层感知机(MLP)架构,但在多个基准测试中展现了极具竞争力的性能。 与主流预测器的性能对比:在多个外部标准测试集(如Novartis、SAMPL6-8)上,BCL-XpKa的平均绝对误差(MAE)与包括ChemAxon、QupKake以及基于GNN的MolGpKa和Uni-pKa等在内的多种现代pKa预测器不相上下。例如,在Novartis-Acid测试集上,其MAE为0.79。 优秀的泛化能力:模型的核心优势在于其对新化学骨架的泛化能力。在“留下一类”(Leave-Class-Out, LCO)的交叉验证中,模型需要预测从未在训练集中见过的、特定化学亚结构分子的pKa。结果显示,使用Mol2D描述符的BCL-XpKa显著优于使用传统MACCS和Morgan指纹的同等模型,平均MAE分别为1.1(BCL-XpKa)、1.46(MACCS)和1.20(MFP2)。 准确捕捉化学趋势:模型不仅能预测绝对pKa值,更能准确地再现微小化学修饰所引起的pKa变化趋势。例如,在包含71对仅有细微结构差异的分子测试中,BCL-XpKa能够正确预测pKa变化方向的比例高达81.7%。这对于指导药物化学中的先导化合物优化尤为重要。 数据策略的有效性:该研究还表明,尽管模型主要在预测数据(来自ChEMBL)上进行训练,但其性能全面优于仅使用少量实验数据训练的同等模型(BCL-MLP-MTC-EO),证实了在大规模预测数据基础上进行训练策略的有效性。 二、 原子敏感性分析(ASA)方法细节与应用 这部分是该研究的核心。原子敏感性分析(Atomic Sensitivity Analysis, ASA) 的设计初衷是:在不重新训练模型的情况下,将模型对整个分子的pKa预测值“分解”到每个原子上,从而理解哪个原子或基团对最终的预测贡献最大。 1. ASA的核心原理 ASA的核心思想是“基于扰动的敏感性分析”。它通过系统性地、有物理意义地扰动分子中的每一个原子,并观察模型预测结果的变化剧烈程度,来判断该原子对原始预测的重要性。如果对某个原子的微小改动导致了模型预测结果的巨大变化,那么这个原子就被认为是“敏感的”或“重要的”。 2. ASA的具体实施步骤 graph TD subgraph "ASA 核心流程(针对单个原子)" A["**第1步:父本预测**<br/>将原始分子输入BCL-XpKa<br/>获得pKa概率分布 P_parent"] --> B; B["**第2步:原子扰动**<br/>将分子中的杂原子 a<br/>替换为同构的碳原子<br/>生成'扰动分子'"] --> C; C["**第3步:扰动预测**<br/>将'扰动分子'输入模型<br/>获得新的pKa概率分布 P_perturbed"] --> D; D["**第4步:量化差异**<br/>计算两个分布的差异<br/>使用Kullback-Leibler (KL)散度<br/>D_KL(P_perturbed || P_parent)"] --> E; E["**第5步:计算ASA分数**<br/>通过经验公式放大信号<br/>ASA(a) = exp[S * D_KL] - 1<br/>得到原子 a 的敏感性分数"] end style A fill:#e3f2fd,stroke:#1e88e5,stroke-width:2px style B fill:#fff3e0,stroke:#ef6c00,stroke-width:2px style C fill:#e3f2fd,stroke:#1e88e5,stroke-width:2px style D fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px style E fill:#f3e5f5,stroke:#6a1b9a,stroke-width:2px 第1步:获取父本分子的预测分布:将原始的、未经修改的“父本分子”(parent molecule)输入到BCL-XpKa模型中,获取模型输出的pKa概率分布 Pparent。 第2步:对单个原子进行扰动:遍历分子中的每一个杂原子(非碳、氢原子),将其替换为一个保持价态和杂化状态正确的碳原子。 第3-4步:获取扰动分布并量化差异:将这个新的“扰动分子”输入到同一个BCL-XpKa模型中,获取其pKa概率分布 Pperturbed,并使用Kullback-Leibler(KL)散度来衡量 Pparent 和 Pperturbed 这两个概率分布的差异。 第5步:计算最终的ASA分数:原始的KL散度值需要经过一步经验性的去噪和放大,才能得到最终的ASA分数。其计算公式为: \(\text{ASA}(\text{atom } a) = e^{[S \cdot D_{KL}(P_{\text{perturbed}} || P_{\text{parent}})]} - 1\) 这个公式通过指数函数非线性地放大差异,使得影响显著的原子的分数远高于影响微弱的原子。 3. ASA的分析思路与应用 识别关键功能位点(Ionization Site Identification) 做法是直接找出分子中ASA分数最高的原子。这通常就是模型认为的、决定该分子pKa值的主要电离/质子化位点。论文在Novartis测试集上进行了验证,该测试集中的酸性分子平均有2.93个潜在电离亚结构,碱性分子平均有2.61个。ASA方法在识别最酸性原子时达到了灵敏度96.6%和特异性82.9%,在识别最碱性亚结构时也表现出色。这种方法的直接应用是在药物研发早期,可以快速、批量地为化合物库中的分子标注质子化状态,为后续的对接、MD模拟等步骤提供更准确的输入结构。 图3:用于分子分析的原子敏感性 (A) ASA协议示意图。“扰动pKa分布”和“父本pKa分布”指的是由BCL-XpKa输出的离散分布。 (B) 一个由BCL-XpKaAcid评分的酸的ASA分数示例。在这里,磺酰胺的氮原子被正确地选择为比其他潜在的酸性亚结构更具酸性。 (C) 一个由BCL-XpKaBase评分的碱的ASA分数示例。 (D) 一个碱,其中酰胺的氧原子在存在更具碱性的氮原子的情况下,主导了ASA分数。这种情况在61个含酰胺的碱性化合物中出现了4次。 (E) 用于BCL-XpKaBase分解的阳性(蓝色)和阴性(红色)对照亚结构的ASA分数。 (F) 通过添加一个胺基来调节吡啶氮的ASA分数,示例显示在x轴下方。ns = 不显著。*** = p < 0.001。 洞察模型的“化学知识”与学习机制(Probing Model Learning) 做法是比较同一官能团在不同化学环境下的ASA分数,或比较局部环境相同但整体化学性质迥异的基团。论文发现,邻近的吸电子基团(EWG)会显著降低吡啶氮的ASA分数(即降低其碱性贡献),而给电子基团(EDG)则会提高其分数(见图4F)。例如,在图2D的分子系列中,将哌啶(pKa 11.2,预测10.45)芳构化为吡啶(pKa 5.20,预测5.45),其碱性显著下降,模型准确地捕捉了这一趋势。这证明了模型虽然只学习了局部原子环境,但隐式地捕捉到了上下文依赖的化学规则。这种分析可以用来验证模型是否学到了正确的化学知识,而不是仅仅记住了某些表观特征,从而增加我们对模型预测的信任度。 图4:亚结构的原子敏感性分析 (A-D) 常见亚结构在作为分子的主要电离位点时与存在更主要电离位点时的ASA分数小提琴图。 (E) 常见亚结构在作为主要电离位点时的ASA分数小提琴图。 (F) 相邻的吸电子基团(EWG)和给电子基团(EDG)对吡啶氮ASA分数的影响,通过ASA分数的变化(ΔASA)来衡量。 (G) 分子对称性对ASA分数的“掩蔽效应”。 指导先导化合物的理性优化(Lead Optimization) 这是一个非常实用的应用场景,也是可以借鉴的完整工作流。论文以一个已知的KRAS降解剂PROTAC(P-1, PDB: 8QU8)为例,该分子与靶蛋白形成的复合物中,其连接臂上的一个叔胺与KRAS的Q62残基形成了关键的盐桥相互作用(图5A-B)。 流程: 问题定位:ASA分析显示,这个叔胺氮原子具有最高的ASA分数(12.1),确认了它就是导致PROTAC在生理条件下可能质子化的主要碱性位点(图5C)。而这种质子化状态不利于细胞膜通透性。 提出优化方案:针对这个高分子的叔胺,进行生物电子等排替换,例如将其替换为酰胺,设计出候选分子P-2(图5D)。 快速虚拟验证:BCL-XpKa模型预测P-2的pKa值显著降低至3.23,成功消除了碱性。 结构验证:通过对接模拟发现,新的P-2分子依然能够与KRAS的Q62残基形成一个关键的氢键,保持了必要的结合模式(图5F-H)。 结论:这个流程展示了如何利用ASA精确定位分子的物化性质缺陷来源,并指导进行高效、理性的化学修饰,从而在保持活性的前提下优化类药性。 图5:用于药物设计的原子敏感性分析 (A) 泛KRAS降解PROTAC P-1与VHL和KRAS形成的三元复合物的晶体结构(PDB: 8QU8)。 (B) PROTAC P-1,其pKa由BCL-XpKaBase计算为6.51。 (C) P-1连接臂中氮原子的ASA分数。 (D) 提出的P-1连接臂生物电子等排替换修饰及其由BCL-XpKa预测的pKa值。 (E) P-1和P-2对接到8QU8中VHL-KRAS蛋白-蛋白相互作用界面的三元复合物模型全局视图。 (F-H) 8QU8晶体结构和P-2酰胺修饰的结合位点视图,显示它们支持相似的PROTAC构象,并保留了与KRAS Q62的氢键。 三、 ASA的局限性与未来方向 作者在论文的讨论部分明确提到了当前框架的一些局限性,这对于我们借鉴和改进该方法至关重要。 仅限于原子级别:ASA旨在识别单个原子对预测的贡献,但不能直接输出“官能团级别”的贡献。一个原子的影响往往与它所在的整个官能团或药效团紧密相关,而ASA目前无法直接解耦这种集体效应。 对非直接电离原子的影响处理不完美:一些本身不电离但能显著影响pKa的原子(例如,通过强诱导效应或共振效应)偶尔会得到异常高的分数,从而干扰对真正电离位点的判断。例如,在一个含有酰胺的碱性分子中,有少数情况是酰胺的氧原子(本身不质子化)得到了最高的ASA分数,这可能是因为它被扰动后对分子整体电子云的改变过大,从而“掩盖”了真正的质子化位点。 扰动方式单一:将杂原子替换为碳是一种有意义但简化的扰动方式。对于某些复杂的化学环境,这种替换可能无法完全反映该原子在真实化学修饰中的作用。 未来方向: 指导数据增强:通过ASA识别出模型预测不佳或不确定的化学结构类型,可以指导性地扩充训练集,从而提升模型的性能和泛化能力。 整合到药物发现工作流:作者致力于将ASA整合到更大的药物发现工作流中,例如用于超大规模虚拟筛选(vHTS)的分子库预处理,以确保正确的分子质子化状态,提高筛选的命中率。 拓展到其他性质预测:论文提出,未来可以将ASA的思想应用于ADMET(吸收、分布、代谢、排泄、毒性)等更复杂性质的预测模型中,以理解和优化这些关键的药物属性。
Machine Learning & AI
· 2025-10-08
解构血脑屏障渗透性:一个可解释的多模态深度集成框架
解构血脑屏障渗透性:一个可解释的多模态深度集成框架 一、 论文整体概览 1. 论文基本信息 标题:Interpretable Multimodal Deep Ensemble Framework Dissecting Blood–brain Barrier Permeability with Molecular Features 中文译名:使用分子特征解构血脑屏障渗透性的可解释多模态深度集成框架 期刊:The Journal of Physical Chemistry Letters DOI: 10.1021/acs.jpclett.5c01077 发表年份:2025 Citation: J. Phys. Chem. Lett. 2025, 16, 5806-5819 2. 摘要、背景与科学问题 摘要翻译 血脑屏障渗透性(BBBP)预测在药物发现过程中扮演着关键角色,特别是对于靶向中枢神经系统(CNS)的化合物。尽管机器学习(ML)已显著推动了BBBP的预测,但目前仍迫切需要能够揭示调控BBB渗透性的物理化学原理的可解释性ML模型。在本研究中,我们提出了一个多模态ML框架,该框架整合了分子指纹(Morgan, MACCS, RDK)和图像特征以改进BBBP预测。分类任务(BBB可渗透 vs. 不可渗透)通过一个结合了多个基础分类器的堆叠集成模型来解决。在可比较的评估设置下,所提出的框架与近期的方法相比,展示了有竞争力的预测稳定性、泛化能力和特征可解释性。除了预测性能,我们的框架还结合了主成分分析(PCA)和沙普利加性解释(SHAP)分析,以突显对预测有贡献的关键指纹特征。回归任务(logBB值预测)则通过一个多输入深度学习框架来解决,该框架包含一个用于处理指纹的Transformer编码器,一个用于提取图像特征的卷积神经网络(CNN),以及一个用于增强特征交互的多头注意力融合机制。从多模态特征中提取的注意力图(Attention maps)揭示了分子表示内部的令牌(token)级关系。这项工作提供了一个可解释的框架,用于以增强的透明度和机理洞察力来建模BBBP,并为未来结合透明描述符和物理信息特征的研究奠定了基础。 背景与科学问题 血脑屏障(BBB)是保护中枢神经系统(CNS)的关键生理屏障,但它也成为CNS药物研发的巨大障碍。准确预测一个候选药物能否穿透BBB,是其成药性的决定性因素之一。传统的实验方法成本高昂且耗时,因此开发快速、准确且可靠的计算模型至关重要。 近年来,机器学习(ML)和深度学习(DL)模型在BBBP预测上取得了很高的准确率。然而,这些高性能的模型往往像一个“黑箱”,研究人员难以理解其做出特定预测的具体依据。这种可解释性的缺失不仅阻碍了我们对模型预测的信任,更重要的是,我们无法从模型学到的知识中提炼出清晰的、指导性的化学规则来辅助新药的理性设计。 因此,本文的核心科学问题是:如何在保证高预测精度的前提下,构建一个透明、可解释的BBBP预测框架,从而不仅“知其然”(预测结果),更能“知其所以然”(揭示分子结构与BBB渗透性之间的构效关系)? mindmap root(可解释性分析思路与实践) )特征集质量初评( ::icon(fa fa-flask) **PCA降维可视化** **核心思路**<br/>在建模之前快速评估特征集的质量与判别能力 **关键发现**<br/>MACCS指纹比Morgan指纹<br/>能更有效地分离BBB正负样本 **研究启发**<br/>这是筛选有效分子表示方法的一种重要且高效的前置步骤 )模型归因分析( ::icon(fa fa-search-plus) **SHAP值分析** **核心思路**<br/>定量计算每个“分子亚结构”对最终预测的贡献度 **高贡献度(高SHAP值)的关键亚结构** MACCS_43<br/>极性官能团(氢键供体/受体、磺酸盐) MACCS_39<br/>亚硫酸(酯) MACCS_37<br/>氨基酰胺(如脲结构) **化学原理验证** **极性表面积(PSA)原理**<br/>极性基团(如MACCS_43)增加PSA从而**降低**穿透脂质血脑屏障的能力<br/>(表现为高的负SHAP值) **卤化效应**<br/>MACCS_46(溴代基团)的负贡献可能源于分子量增加或代谢不稳定 **上下文依赖性** **结论**<br/>亚结构的最终效果受到<br/>分子整体拓扑和周围化学环境的共同调节 **具体表现**<br/>同一亚结构(如MACCS_38)在不同分子中可产生相反的SHAP贡献 **研究启发**<br/>为药物化学家提供**可操作的优化线索**<br/>指导基于构效关系的**理性药物设计** )深度模型内部机制探索( ::icon(fa fa-project-diagram) **注意力图可视化** **核心思路**<br/>揭示Transformer等深度模型在预测时“关注”的特征区域 **两种分析模式** **内部结构注意力**<br/>分析指纹序列内部各部分的重要性 **跨模态注意力**<br/>分析“指纹特征”与“图像空间区域”的关联 **关键发现**<br/>模型注意力会**从模糊逐渐聚焦**<br/>到化学上有意义的区域<br/>(例如`C=C`和`C-O-C`官能团) **研究启发**<br/>验证深度模型是否抓住了**正确的物理化学特征**<br/>为理解复杂模型的**内部工作机制**提供直观窗口 3. 模型框架总结 为解决上述问题,作者提出了一个多模态深度集成框架,其核心是融合不同来源的分子信息来提供更丰富的表征。 多模态特征输入:模型不依赖于单一的分子表示,而是同时整合了多种信息。其中分子指纹(Morgan、MACCS 和 RDK)和2D分子图像特征是两大核心输入模态。 指纹与模型的使用方式:论文中的框架分别针对分类和回归两个任务设计了不同的模型。在评估时,Morgan、MACCS和RDK这三种指纹是分开独立使用的,即用每一种指纹分别训练和评估模型,以比较不同分子表示方法的效果。它们并未融合成一个单一的巨大特征向量。 双任务模型架构:图2中展示的(a)和(b)是针对两个不同任务的两种独立模型。 分类模型(图2a,BBB+ vs. BBB-):该模型仅使用分子指纹作为输入。它采用一个堆叠集成模型(Stacking Ensemble Model)。该模型将多个基础分类器(如逻辑回归、随机森林、XGBoost等)的预测结果作为元特征(meta-features),再由一个最终的分类器进行综合决策,以提高模型的稳定性和泛化能力。 回归模型(图2b,logBB值预测):该模型采用了多模态输入,即同时使用分子指纹和2D分子图像。它是一个更复杂的多输入深度学习网络,使用Transformer处理序列化的指纹特征,用CNN处理图像特征,最后通过多头注意力机制(Multi-Head Attention)将这两种不同模态的特征进行深度融合。 图像特征的价值:论文明确提出,通过多模态融合来丰富分子表示是其核心策略之一。在回归模型中,作者专门设计了CNN和注意力模块来处理和融合图像特征。结论部分也强调,多样化分子模态的融合(即指纹+图像)结合透明的归因技术,能够提供更准确和有意义的预测。PCA分析(图8 e,f)显示,在与MACCS和RDK指纹融合后,特征空间的解释方差有所提升或保持高位,这表明图像特征确实为模型提供了有价值的互补信息,特别是在通过跨模态注意力分析揭示两种特征的关联时,其价值更为凸显。 二、 核心可解释性方法与发现 本文的亮点在于系统性地应用了多种前沿的可解释性技术来剖析其模型,从不同维度揭示了BBBP的分子层面的驱动因素。 1. 特征空间分析:PCA降维可视化 在进行复杂的模型解释之前,作者首先使用了主成分分析(PCA)这一经典的无监督降维方法,来直观地评估不同分子指纹对BBB+/BBB-两类分子的区分能力。 做法与发现: 将所有分子的Morgan指纹和MACCS指纹分别通过PCA降到二维空间进行可视化。 图6(a)显示,在使用Morgan指纹时,BBB+(红色)和BBB-(蓝色)两类分子的数据点严重重叠,难以区分,且前两个主成分仅能解释总方差的极小部分(PC1: 1.36%, PC2: 1.16%)。这表明Morgan指纹生成的特征向量虽然信息量大,但可能过于稀疏或其线性组合难以捕捉到类别间的清晰界限。 相比之下,图6(b)显示,在使用MACCS指纹时,两类分子的数据点形成了相对清晰可分的簇,且前两个主成分解释了更多的方差(PC1: 11.31%, PC2: 8.0%)。这说明MACCS指纹定义的166个预设化学亚结构,能够更有效地捕捉与BBB渗透性相关的结构差异。 应用与价值:PCA分析虽然简单,但它是在建模之前快速评估特征集质量和判别能力的有效手段。通过这种方法,作者在早期就得出结论:MACCS指纹在这种二元分类任务中比Morgan指纹更具信息量,这为后续选择MACCS作为主要特征进行SHAP分析提供了依据。 2. SHAP分析:量化分子指纹的贡献 SHAP(Shapley Additive Explanations)是一种源于合作博弈论的模型解释方法,它可以为单个样本的预测结果计算出每个输入特征的贡献值(SHAP值)。一个正的SHAP值表示该特征将预测推向正类(如BBB+),负值则推向负类(如BBB-)。 做法与发现: 作者对表现最好的分类模型(基于MACCS指纹的堆叠模型)进行了SHAP分析。图6(c)的蜂群图(Beeswarm plot)直观地展示了所有测试样本中,对模型影响最大的前几个MACCS指紋特征。 关键特征识别:分析发现,MACCS_43(通常代表富含氢键供体/受体和磺酸盐的极性官能团)、MACCS_39(O-S(=O)O)、MACCS_37(N-C(=O)N)和MACCS_38(N-C(-C)-N)等特征具有最高的平均SHAP值,表明它们对模型的预测有决定性影响。 化学意义的验证:图6(d)展示了包含这些关键亚结构的具体分子示例。例如,MACCS_43 在一个分子中贡献了+0.130的正SHAP值,而在另一个分子中贡献了-0.169的负SHAP值。这与化学直觉相符:极性基团通常会增加分子的极性表面积(PSA),从而降低其穿透富含脂质的血脑屏障的能力(对应负的SHAP值,预测为BBB-)。MACCS_46(代表溴代亚结构)的SHAP值为负,这可能是因为过度卤化会增加分子量或引入代谢不稳定性,从而整体上降低了渗透性。 上下文依赖性:SHAP分析还揭示了亚结构贡献的上下文依赖性。例如,MACCS_38(对称的二胺结构)在某些分子中贡献为正(+0.108),而在另一些分子中为负(-0.057),这表明其最终效果受到分子整体拓扑结构和周围化学环境的调节。 应用与价值:SHAP提供了一种强大的、定量的手段,可以将抽象的模型预测归因于具体的、化学家可以理解的分子亚结构。这使得模型的决策过程不再是“黑箱”,而是可以被验证和理解的。论文指出,这种由SHAP引导的分析为以结构功能关系为基础的CNS靶向药物设计提供了可操作的见解。虽然本文未直接展示用SHAP结果指导模型调优或新实验,但其揭示的关键特征无疑可以用于指导特征工程(例如,构建仅包含最重要特征的简化模型)或提出需要通过实验验证的化学假说(例如,系统性地修饰MACCS_43代表的基团来验证其对渗透性的影响)。 图6:特征分析与SHAP可解释性 (a) 使用Morgan特征的BBB+/BBB-样本的前两个主成分(PC)的PCA得分图。 (b) 使用MACCS特征的PCA得分图。 (c) 展示了使用MACCS指纹的模型中,样本级别的SHAP值分布的蜂群图。 (d) 包含关键亚结构的代表性分子的结构可视化,并标注了其对应的SHAP值(pos代表正贡献,neg代表负贡献)。 3. 注意力机制可视化:揭示模型内部焦点 对于用于logBB值预测的多输入深度学习模型,作者利用其核心组件——注意力机制(Attention Mechanism)——来探索模型在进行预测时,其“注意力”集中在哪些特征上。 做法与发现: 内部结构注意力(Intra-Structure Attention):图11(a)展示了Transformer编码器内部的注意力热图。这张图揭示了模型在处理一个分子的指纹序列时,不同指纹“令牌”(tokens)之间的相互依赖关系。 跨模态注意力(Cross-Modal Attention):图11(b)展示了从训练的第1个周期到第50个周期,分子指纹特征和CNN提取的图像特征之间的跨模态注意力图的演化。可以清晰地看到,随着训练的进行,模型逐渐学会将指纹中的特定信息(符号/化学特征)与图像中的特定空间区域(视觉特征)对应起来。模型的注意力从最初的模糊、分散状态,逐渐锐化并聚焦于化学上有意义的区域。 具体案例分析:以一个BBB+的分子divinylether为例,模型的高度注意力权重区域,无论是内部结构注意力还是跨模态注意力,都准确地对应于其分子结构中的关键官能团,如烯烃(C=C)和醚键(C-O-C)。 应用与价值:注意力可视化为理解深度学习模型(特别是基于Transformer的模型)的内部工作机制提供了一个直观的窗口。它能告诉我们模型在做决策时“正在看哪里”,从而验证模型是否抓住了正确的物理化学特征,而不是依赖于数据中的某些伪影或噪声。这种方法为以一种更具机理性的方式理解BBB渗透性提供了支持。 图11:注意力权重的可视化 (a) 代表指纹内部结构的注意力热图。 (B) 从第1个训练周期到第50个训练周期,结合图像特征的跨模态注意力热图的演化过程。 三、 本文的局限性与未来展望 作者在论文的结论部分坦诚地指出了当前工作的局限性,并对未来研究方向进行了展望。 需要更先进的特征选择技术:尽管当前框架表现良好,但未来可以引入更先进的特征选择方法(如LASSO、SHAP-RFE)来进一步优化输入特征,可能会提升模型性能和可解释性。 需要更广泛的外部验证:目前模型的验证主要基于B3DB数据集。为了证明其更广泛的适用性,未来需要在更多、更多样化的外部数据集上进行验证。 计算预测与实验验证的鸿沟:模型最终需要与真实的实验结果相结合。未来的工作需要整合实验分析,以弥合计算预测与药理学现实之间的差距。 展望:作者希望这个可解释的框架能够为药物发现早期阶段CNS活性化合物的设计和优先级排序做出贡献,并为未来融合更多透明化描述符和物理信息特征的研究铺平道路。
Machine Learning & AI
· 2025-10-08
千倍加速,精度接近FEP:深入解析Boltz-2的结合亲和力预测
千倍加速,精度接近FEP:深入解析Boltz-2的结合亲和力预测 引言:挑战亲和力预测的“速度-精度”壁垒 在计算机辅助药物发现(CADD)领域,结合亲和力的预测长期以来面临一个核心的权衡困境:速度与精度。一方面,以自由能微扰(FEP)为代表的、基于物理模拟的方法,凭借其严谨的理论基础,能够提供最高的预测精度,被誉为领域的“金标准”;但其高昂的计算成本(通常需要数天GPU时)使其应用场景受限,难以进行大规模筛选。另一方面,以分子对接(Docking)为代表的快速方法,虽然能在数秒内完成计算,但其精度往往不足以在先导化合物优化等阶段提供可靠的指导。 在两者之间,各类机器学习(ML)方法层出不穷,但迄今为止,在公开基准上,鲜有AI模型能在预测准确性上展现出与FEP方法相抗衡的性能。Boltz-2的问世,正是为了正面挑战这一壁垒。 它不仅是一个结构预测模型,其核心突破之一在于构建了一个强大的亲和力预测模块。该模块根植于模型对生物分子相互作用的深层结构表示,通过对海量含噪数据的精细化处理和创新的训练策略,首次在AI模型中实现了接近FEP的精度与远超对接的速度的结合。 本文将深入Boltz-2的心脏地带,详细剖析其亲和力预测的数据管理、模型架构、训练策略、性能评估以及前瞻性应用的全流程。 1. 数据管理(Data Curation):在噪声中淘金 Boltz-2亲和力预测成功的基石,在于其前所未有的大规模、高质量的数据管理(Data Curation)策略。团队深知,公共数据库(如PubChem, ChEMBL, BindingDB)中的亲和力数据虽浩如烟海,但因实验方案各异、噪声巨大而难以直接使用。为此,他们设计了一套精密的“淘金”流程。为同时服务于药物发现的早期(苗头发现)和中后期(先导优化)阶段,Boltz-2构建了一个包含二元标签(结合/不结合)和连续值亲和力的混合数据集。其数据管线(Data Pipeline)极其精细,旨在从海量的、良莠不齐的公共数据中筛选出最可靠、信息量最大的部分。 1.1 通用数据处理与质量控制 在处理具体数据类型之前,所有数据源都经过了统一的预处理流程: 多源整合:数据集整合了多个公共来源,包括PubChem, ChEMBL, BindingDB, 以及专门的CeMM片段筛选数据集和MIDAS代谢物相互作用组数据集。详见之前的推送。 配体标准化:所有配体分子都经过ChEMBL结构管线(ChEMBL Structure Pipeline)进行标准化处理,以确保化学表示的一致性。 结构质量过滤:由于模型是基于结构的,训练样本的靶点结构质量至关重要。该管线应用了一种避免引入选择偏倚的过滤策略:对每个实验(assay),使用Boltz-2自身的置信度模块,对随机10个结合物的复合物结构进行预测,并计算平均的界面TM-score(ipTM)。只有当平均ipTM分数高于0.75时,该实验的全部数据才被保留,从源头上确保了训练样本的结构可靠性。 1.2 连续值亲和力数据的处理管线 这部分数据主要用于模型的回归任务,以学习精确的构效关系。 graph TB subgraph "阶段一:数据源整合与通用处理" direction TB A[ChEMBL 数据库] --初步提取与过滤--> D; B[BindingDB 数据库] --ChEMBL未覆盖的--> D; D["**通用数据处理**<br/>「移除PAINS, 过滤重原子>50的分子」"]; end subgraph "分支B:Hit-Discovery 数据" direction TB G1["**高多样性筛选**<br/>保留化学结构多样的实验"]; G2["**数据量过滤**<br/>保留数据点>100的实验"]; G3["**标签二元化**<br/>将亲和力值转换为“活性”或“非活性”"]; G_OUT[产出: **大规模二元标签数据集**]; %% 在此明确定义垂直连接 %% G1 --> G2; G2 --> G3; G3 --> G_OUT; end subgraph "分支A:Hit-to-Lead 数据" direction TB F1["**高相似性筛选**<br/>保留化学结构相似的系列"]; F2["**信息量过滤**<br/>剔除数据点少、活性范围窄的实验"]; F3["**数据质量过滤**<br/>处理限定符、剔除异常亲和力值"]; F_OUT[产出: **精炼的连续值数据集**]; %% 在此明确定义垂直连接 %% F1 --> F2; F2 --> F3; F3 --> F_OUT; end D -- "优化阶段「Hit-to-Lead」" --> F1; D -- "筛选阶段「Hit-Discovery」" --> G1; style F_OUT fill:#e8f5e9,stroke:#4caf50,stroke-width:2px style G_OUT fill:#e3f2fd,stroke:#2196f3,stroke-width:2px style D fill:#fff3e0,stroke:#fb8c00,stroke-width:2px 数据提取 (ChEMBL & BindingDB) 从ChEMBL中提取的数据:遵循严格标准,包括置信度得分必须为最高分9,靶点类型限定为单一蛋白,实验类型限定为生化或功能性实验,亲和力类型限定为${K_i, K_d, IC_{50}, XC_{50}, EC_{50}, AC_{50}}$,并排除了被标记为不可靠的数据源。 避免数据重复:只保留BindingDB中有但ChEMBL未覆盖的记录。 通用处理步骤 (General Curation) 应用PAINS过滤器:移除可能产生实验假象或干扰多种生化读数的分子。 重原子数限制:移除重原子数超过50的分子。 数据划分:将数据划分为“苗头到先导优化”(hit to lead)和“苗头发现”(hit discovery)两个子集,以便更智能地处理带有不等号的截断数据。在“苗头发现”阶段,>值被视为非结合物;而在“苗头到先导”阶段,则被视为不确定的下限。 针对“苗头到先导优化”的深度过滤 化学多样性:移除分子间平均Tanimoto相似度过低($< 0.25$)的实验,以保留那些专注于结构相关分子优化的、真正的“先导优化”数据集。 数据量与信息量:排除数据点少于10个、活性值标准差过低($< 0.25$,无法学习活性悬崖)、或独特活性值过少的实验,确保每个用于训练的实验都包含足够丰富的信息。 截断数据处理:严格处理带不等号的数据,例如丢弃所有<限定符的数据,以及活性值$< 10 \mu M$但带有>限定符的数据。 不要亲和力太强的:移除任何报告活性值小于$10^{-12} M$的实验,因为这通常意味着单位或注释错误。 针对“苗头发现”的过滤 数据量要求:实验至少包含100个数据点。 化学多样性:保留化学上更多样化的实验(平均Tanimoto相似度$< 0.25$)。 活性标记:将所有带有>限定符的数据标记为非活性,而将亲和力=和$< 2.0 \mu M$的数据标记为活性,其余数据则被丢弃。 1.3 二元标签数据的处理管线 这部分数据主要用于模型的二元分类任务,其处理核心在于提高标签的可靠性并构建高质量的负样本集。 graph TD subgraph "二元标签数据处理流程" subgraph "数据源一:PubChem HTS" A1["PubChem HTS 数据"] --> B1["初步过滤<br/>「>100化合物, <10%命中率」"]; B1 --> C1["**阳性标签交叉验证**<br/>「必须有关联的定量亲和力值」"]; C1 --> D1["**PAINS过滤 & 负样本降采样**<br/>「~1:9 比例」"] --> E1(PubChem来源<br/>二元数据集); end subgraph "数据源二:CeMM 片段" A2["CeMM 片段筛选数据"] --> B2["**基于置信度打分**<br/>「高置信度->结合物, 诱饵->非结合物」"]; B2 --> C2["**负样本降采样**<br/>「~1:9 比例」"] --> E2(CeMM来源<br/>二元数据集); end subgraph "数据源三:合成诱饵" A3["“苗头到先导”数据集的<br/>**已知活性分子**"] --> B3["**配对采样**<br/>「从同分布的活性分子池中选择诱饵」"]; B3 --> C3["**假阴性控制**<br/>「与已知结合物Tanimoto相似度 < 0.3」"] --> E3(合成诱饵<br/>数据集); end E1 --> F_OUT[("最终的二元标签训练集")]; E2 --> F_OUT; E3 --> F_OUT; end style A1 fill:#e3f2fd,stroke:#1e88e5 style A2 fill:#fff9c4,stroke:#fdd835 style A3 fill:#e8f5e9,stroke:#43a047 style F_OUT fill:#ffebee,stroke:#e53935,stroke-width:4px “诱饵”(decoy)通常指的是那些在实验中表现出没有活性或低活性的化合物。这些化合物在筛选过程中被用来评估模型或实验方法的性能,特别是在区分活性化合物(hits)和非活性化合物(non-hits)的能力上。 PubChem HTS数据的处理: 初步过滤:保留至少测试了100个化合物且命中率低于10%的实验,以过滤掉高噪声或有问题的筛选。 阳性标签交叉验证:这是提高标签可靠性的关键一步。对于每个被标记为“Active”的(蛋白质,SMILES)对,管线会反向查询PubChem,确认其必须存在一个独立的、报告了具体亲和力值的条目。只有满足此条件的才被保留为阳性样本。据此估计,约40%的原始HTS“阳性”标签(很可能是假阳性)被过滤掉。 负样本降采样:为了平衡正负样本比例,对每个实验中的诱饵(decoy)集进行降采样,达到约1:9的结合物与诱饵比例。 CeMM片段数据的处理:对CeMM片段筛选数据集采用类似的置信度过滤。高置信度(score=2或3)的片段被标记为结合物,标记为诱饵(score=0)的为非结合物,低置信度(score=1)的被移除。同样进行了1:9的负样本降采样。 合成诱饵分子的构建 (Synthetic decoys):这是构建高质量负样本集的另一项创新策略。 配对与采样:每个来自“苗头到先导优化”数据集的活性化合物,都会被配对一个“合成诱饵”。这个诱饵分子是从其他活性化合物池中采样的,这确保了正负样本在化学性质的分布上保持一致,防止模型学习到区分两者的“捷径”。 避免假阴性:为防止错误地将一个未被发现的活性分子当作诱饵(即假阴性),采样时强制要求诱饵分子与当前靶点所在蛋白簇的所有已知结合物,其Tanimoto相似度必须低于0.3。这一约束极大地降低了引入假阴性的风险。 尽管该数据处理管线已相当复杂,但作者也承认,由于公共数据库元数据的不一致性,这仅仅是构建高质量训练集的冰山一角。更深度的标准化(如应用Cheng-Prusoff方程)和实验细节审查,将是未来工作的方向。 背景知识:什么是PAINS过滤器? PAINS (Pan-Assay Interference Compounds),即泛筛选干扰化合物,特指那些在多种高通量筛选(HTS)实验中都倾向于产生假阳性信号的分子。 典型干扰机制与结构特征 PAINS类别 干扰机制 代表化合物 罗丹宁类(Rhodanines) 共价修饰靶蛋白 常见于文献误报 邻苯二酚类(Catechols) 氧化还原循环/金属螯合 天然产物姜黄素 异噻唑酮类(Isothiazolones) 非特异性化学反应 商业筛选库常见 醌类(Quinones) 产生活性氧破坏靶标 毒黄素(Toxoflavin) 核心功能:PAINS过滤器是一个计算工具,通过识别分子中是否存在已知的、会导致非特异性相互作用的化学结构子结构(警报结构),来标记这些潜在的“麻烦制造者”。 干扰机制:这些化合物并非通过与靶标特异性的、有意义的“钥匙-锁”模式结合来产生信号。相反,它们通过一些“取巧”的物理化学机制来干扰实验读数,例如: 共价修饰:分子上的活泼基团与靶蛋白发生不可逆的共价反应。 氧化还原循环:分子自身发生氧化还原反应,干扰依赖荧光或发光的检测系统。 金属螯合:螯合实验缓冲液中的金属离子。 胶体聚集:在高浓度下形成胶体聚集体,非特异性地吸附蛋白。 应用与争议:在药物发现早期,使用PAINS过滤器剔除这些化合物是标准流程,可以有效降低后续资源投入的风险。然而,也存在争议,因为一些上市药物(如儿茶酚胺类药物)或有潜力的天然产物(如姜黄素)也包含PAINS警报结构。因此,PAINS过滤通常被用作一个警示工具而非一票否决的规则,需要结合具体的化学环境和后续的实验验证(如正交检测法)来综合判断。 2. 模型架构:专为亲和力设计的预测模块 Boltz-2的亲和力预测功能由一个专门设计的Affinity Module实现。该模块在已经训练好的结构预测模型之上构建,其梯度在训练时不会反向传播到Trunk模块,以保护其学到的强大结构表示。 2.1 Boltz-2 主干网络 (Trunk): Pairformer 架构 Boltz-2的主干网络(Trunk)是其结构预测能力的核心,其设计在很大程度上借鉴并扩展了前代模型的思想,其核心是Pairformer模块。与早期架构相比,Pairformer的一个关键演进是显著降低了对多序列比对(MSA)信息的直接和持续依赖,转而将计算重心完全放在对成对表示(pair representation)和单一表示(single representation)的深度迭代精炼上。这种设计使其能更高效地处理包含多种分子类型(蛋白质、核酸、小分子等)的复杂生物系统。 具体内容见下一篇推送。 Trunk模块与Affinity模块的PairFormer区别 必须明确的是,Boltz-2的亲和力模块(Affinity Module)中使用的PairFormer是一个完全独立的、更轻量、更专注的版本。它们的区别在于: 对比维度 Trunk中的PairFormer (主干网络) Affinity模块中的PairFormer (亲和力模块) 功能定位 结构生成器 (Structure Generator) 亲和力判别器 (Affinity Discriminator) 核心目标 预测完整的、物理化学合理的3D结构。 在一个已固定的3D结构基础上,精细计算其结合强度。 架构深度 深层 (64层),用于复杂的几何推理。 轻量级 (4层或8层),专注于快速、高效的界面分析。 关注焦点 全局:处理系统内所有原子对的相互作用。 局部且专注:通过masking机制,仅处理蛋白质-配体界面及配体内部的相互作用,屏蔽了蛋白质内部的冗余信息。 角色总结 是一个通用、强大的几何特征提取与精炼引擎。 是一个轻量级的、专注于结合界面物理化学性质分析的后处理网络。 因此,可以将亲和力模块的PairFormer理解为一个轻量级的、专注于结合界面物理化学性质分析的后处理网络。 2.2 核心架构:聚焦界面的PairFormer与双预测头 亲和力模块的输入,继承了Trunk模块对生物分子复合物的深层理解: Trunk模块的最终成对表示:这是Trunk模块输出的、蕴含了丰富序列和结构上下文信息的二维特征图。 预测的3D原子坐标:由Denoising模块生成的、置信度最高的蛋白质-配体复合物三维结构。 基于原文中的算法1,我们可以将亲和力模块的内部数据流可视化如下: graph TD subgraph "输入 (Inputs)" A[Trunk模块的成对表示 z_trunk] B[Trunk模块的单体特征 s_inputs] C[预测的3D结构距离图 D_ij] end subgraph "Affinity模块内部流程" D[初始化表示] --> E[几何信息注入] E --> F[界面聚焦的PairFormer] F --> G[信息聚合] G --> H[共享MLP层] H --> I[结合可能性预测头 MLP + SoftMax] H --> J[亲和力值预测头 MLP] end subgraph "输出 (Outputs)" K[结合可能性] L[亲和力值] end A --> D B --> D C --> E I --> K J --> L style F fill:#f9f,stroke:#333,stroke-width:2px 流程步骤详解: 初始化表示:接收来自Trunk模块的成对表示z_trunk和单体特征s_inputs,通过线性变换将它们融合,构建出亲和力模块的初始成对表示z。 几何信息注入:将已预测出的3D结构信息(以距离图D_ij的形式)通过一个PairwiseConditioner注入到成对表示z中,使其感知3D空间关系。 界面聚焦的PairFormer:这是核心处理步骤。成对表示z经过一个轻量级(4或8层)的PairFormer模块进行精炼。关键在于,此处的计算被一个pair_mask所限制,该掩码只允许网络关注蛋白质-配体之间和配体内部的相互作用。 信息聚合:经过PairFormer处理后,使用平均池化(Mean Pooling)将(N, N, D)形状的成对表示聚合成一个单一的、代表整个结合事件的全局特征向量g。 共享MLP层:全局特征向量g先通过一个共享的多层感知机(MLP)进行一次非线性变换,为最终预测做准备。 双预测头:共享MLP的输出被送入两个独立的MLP预测头,分别输出结合可能性(经过SoftMax归一化)和连续的亲和力值。 2.3 鲁棒性增强:亲和力模型集合(Ensemble) 为了提升预测的鲁棒性和整体性能,Boltz-2实际上训练了两个超参数略有不同的亲和力模型,并在推理时将它们的预测结果进行集合。 模型对比细节: 对比项 集合成员1 集合成员2 PairFormer层数 8 4 Focal Loss权重 ($\lambda_{focal}$) 0.8 0.6 训练样本数 5500万 1250万 (注:成员2训练样本数较少,表明其经过了早停(early-stopping)策略) 集合策略与应用 常规评估:在进行基准测试时,使用的是两个模型的集合预测结果。对于二元分类,是预测概率的平均值;对于连续值回归,是经过分子量校准的加权平均。 生成式筛选中的应用:集合策略在与SynFlowNet结合进行分子生成时扮演了更重要的角色。为了防止生成器“过拟合”或“攻击”单个打分模型的弱点(即reward hacking),团队采用了一个模型(成员1)作为主要的奖励函数来指导生成,而另一个模型(成员2)则用作独立的验证和最终过滤工具。这种机制确保了最终筛选出的分子不仅在主模型上得分高,还能通过第二个模型的“交叉检验”,从而提高了最终候选分子的可靠性。 3. 训练策略:从噪声数据中学习精确信号 亲和力模块的成功,同样离不开其为处理噪声数据而量身定制的训练策略。Affinity training在结构预测之后进行,其梯度与结构模型分离,以保护已学到的表示。该训练流程包括几个关键组成部分:高效的蛋白质结合口袋预处理、围绕结合位点的空间区域裁剪、主干特征的预处理、平衡结合物与诱饵并优先考虑信息丰富实验的采样策略,以及为减轻实验噪声影响而定制的鲁棒损失函数。 3.1 口袋识别、裁剪与特征预计算:为亲和力预测精准聚焦 graph TD subgraph "阶段一:离线预处理" A["亲和力数据集<br/>「ChEMBL, BindingDB, PubChem等」"] --> B{"口袋识别与距离缓存"}; B --> C["已缓存的共识口袋距离图<br/>「每个靶点一份」"]; A --> D{"特征预计算"}; D --> E["预计算的Trunk特征库<br/>「包含z_trunk和3D坐标」"]; end style B fill:#e3f2fd,stroke:#1e88e5,stroke-width:2px style D fill:#e3f2fd,stroke:#1e88e5,stroke-width:2px 为了让亲和力模块能够高效、准确地学习,Boltz-2设计了一套精密的预处理流程,其核心思想是剥离无关信息,聚焦于决定结合亲和力的关键区域和特征。此流程分为三个关键步骤: 口袋识别 (Pocket Identification): 为降低训练和推理的复杂性并减少过拟合,模型首先需要精准地识别出配体的结合口袋。这是一个至关重要的预处理步骤,其过程如下: 多构象采样与预测:对每个目标蛋白,从亲和力训练数据集中随机抽取10个已知的结合物。然后,利用Boltz-2强大的结构预测模块,为这10个蛋白质-配体复合物分别生成预测的3D结构。 置信度筛选:为了确保后续步骤基于高质量的结构信息,模型会使用界面预测TM分数 (interface predicted TM-score, ipTM) 来评估每个预测结构的质量。ipTM是一个源自AlphaFold系列的置信度指标,专门用于评估两个或多个分子链(此处为蛋白质和配体)之间相互作用界面的预测准确性。分数越高,代表模型对预测的结合模式越有信心。 共识口袋确定:通过在10个高ipTM分数的预测结构上进行基于共识的投票策略,来最终确定最可能的结合位点。具体来说,该策略会识别出在多个不同配体的预测结合模式中,始终稳定出现在配体周围的那些蛋白质残基。这种方法有效地平均掉了单个预测可能带来的噪声,定义了一个更可靠、更具代表性的“共识口袋”。 距离缓存:最后,计算蛋白质中每个原子到这个共识口袋的最小距离,并将这些距离信息缓存下来,供后续的裁剪器高效使用。 亲和力裁剪器 (Affinity Cropper): 该裁剪算法利用上一步预先计算好的口袋注释,来高效地从整个复合物中裁剪出与结合亲和力最相关的区域。 裁剪目的:这一步骤的核心价值在于为亲和力模块创造一个尺寸一致、信息集中的输入。通过移除距离结合位点遥远的、无关的蛋白质部分,可以确保亲和力模块有限的计算能力(例如其4层或8层的PairFormer)能够完全聚焦于真正决定结合强弱的物理化学相互作用——即蛋白质-配体界面。 裁剪流程:该算法首先保留所有的配体tokens,然后基于缓存的口袋距离信息,贪婪地选择距离结合位点最近的蛋白质tokens,直到总tokens数达到上限(最多256个tokens,其中蛋白质tokens不超过200个)。 效率提升:该方法保证了即使在某些复合物的实验结构不可用时,也能进行一致的裁剪,并将预处理的复杂度从与复合物数量成正比的O(complexes)降低到与蛋白质数量成正比的O(proteins)。 特征预计算 (Feature Pre-computation): 为最大限度地降低迭代式亲和力训练期间的计算开销,关键的结构和表示特征被预先计算并存储。 一次性重计算:对每个蛋白质-配体复合物,计算成本最高的步骤——运行完整的Boltz-2结构模型主干网络(Trunk)——只执行一次。 关键特征提取:运行后,保留ipTM分数最高的那个候选结构。模型提取并存储该结构的关键信息,包括:预测的原子坐标、主干网络输出的成对表示 (pair representation) 以及上一步裁剪器确定的token索引。 内存优化:主干网络输出的成对表示矩阵(尺寸为 N×N×C)非常巨大。考虑到亲和力模块仅利用蛋白质-配体之间和配体内部的成对特征,因此可以在训练开始前,安全地丢弃矩阵中占据绝大部分空间的蛋白质-蛋白质相互作用部分。根据论文,这一优化步骤能将训练时所需的内存占用减少5倍以上,极大地提升了数据加载和处理的效率,使得大规模亲和力训练成为可能。 graph LR subgraph "阶段二:在线训练循环" F["开始一个训练批次"] --> G{"选择数据源"}; G -- "连续值亲和力数据" --> H("活性悬崖采样器<br/>根据IQR分数选择实验"); G -- "二元标签数据" --> I("结合物-诱饵采样器<br/>1个结合物 + 4个诱饵"); H --> J["采样一批「5个」来自同一实验的分子"]; I --> J; J --> K{"组装批次数据"}; subgraph "输入自阶段一" C_IN["已缓存的共识口袋距离图"]; E_IN["预计算的Trunk特征库"]; end C_IN -- "用于确定裁剪区域" --> K; E_IN -- "提供结构和特征" --> K; subgraph K["组装批次数据"] K1["亲和力裁剪器<br/>「保留配体+最多200个口袋蛋白tokens」"]; K2["特征提取<br/>「从特征库中提取裁剪后的z_trunk和坐标」"]; end K --> L["输入到Affinity模块"]; subgraph L["Affinity模块训练"] L1["界面聚焦的PairFormer 「4/8层」"]; L2["双预测头: 结合可能性 & 亲和力值"]; end L --> M{计算总损失}; subgraph M["计算总损失 「L_total」"] M1["成对差异损失 L_dif 「高权重」"]; M2["绝对值损失 L_abs 「低权重」"]; M3["二元分类损失 L_binary 「Focal Loss」"]; end M --> N["反向传播<br/>「仅更新Affinity模块权重」"]; N --> F end style C_IN fill:#dcedc8,stroke:#689f38 style E_IN fill:#dcedc8,stroke:#689f38 style H fill:#fff9c4,stroke:#fdd835,stroke-width:2px style I fill:#e8f5e9,stroke:#43a047,stroke-width:2px style M fill:#ffebee,stroke:#e53935,stroke-width:2px style N stroke-dasharray: 5 5 3.2 Activity Cliff采样器与标签采样 模型设计了一个定制的亲和力训练采样器,以增强从含噪数据集中学习的能力,该采样器旨在平衡结合物和诱饵,并强调高对比度的实验。训练时,根据表8中指定的概率从不同数据源进行采样,并构造大小为5的批次,确保同一批次内的所有样本来自同一个实验。 亲和力值采样器 (Affinity value sampler):从亲和力数据中学习的一个关键挑战是捕捉“活性悬崖”——由分子微小结构修饰引发的结合亲和力巨大变化。为了鼓励模型关注这些高频模式,采样器在每个批次中都从同一个实验中采样五个复合物。为了优先考虑信息最丰富的实验,引入了实验级别的“活性悬崖分数”,该分数被定义为亲和力值的四分位距 (IQR)。对实验的采样概率与这些活性悬崖分数成正比。 二元标签采样器 (Binary label sampler):为提高对结合物和诱饵的区分能力,训练批次在一致的蛋白质背景下构建。对每个批次,首先从数据集中随机均匀采样一个结合物,确定其相关实验,然后从同一实验中随机采样四个诱饵。 3.3 鲁棒且精巧的损失函数 为了应对实验噪声和数据异质性,Boltz-2采用了复杂的复合损失函数。 graph TD subgraph "Boltz-2 总损失函数" A["<b>成对差异损失 L_dif</b><br/>「Huber Loss, 权重: 0.9」"] --> D{加权求和}; B["<b>绝对值损失 L_abs</b><br/>「Huber Loss, 权重: 0.1」"] --> D; C["<b>二元分类损失 L_binary</b><br/>「Focal Loss」"] --> D; D --> E((反向传播<br/>更新亲和力模块)); end style D fill:#e0e0e0,stroke:#616161 style E fill:#c8e6c9,stroke:#388e3c,stroke-width:2px 背景知识:Huber Loss与Focal Loss Huber Loss (胡贝尔损失):这是一种用于回归任务的损失函数,它巧妙地结合了均方误差(MSE)和平均绝对误差(MAE)的优点。 \(L_{\delta}(y, f(x)) = \begin{cases} \frac{1}{2}(y - f(x))^2 & \text{for } |y - f(x)| \le \delta / \delta \cdot |y - f(x)| - \frac{1}{2}\delta^2 & \text{otherwise} \end{cases}\) 当预测误差 $|y−f(x)|$ 小于一个阈值δ时,它等同于MSE,对误差进行平方惩罚;当误差大于δ时,它进行线性惩罚。这使得它对异常值(outliers)不那么敏感。在亲和力数据中,某些实验点可能由于各种原因噪声极大,使用Huber Loss可以防止这些异常点对模型训练产生过度的负面影响。 Focal Loss (焦点损失):这是一种用于解决类别不平衡问题的分类损失函数,是交叉熵损失的一种改进。 \(FL(p_t) = -\alpha_t (1 - p_t)^\gamma \log(p_t)\) 其核心是引入了调制因子$(1 - p_t)^\gamma$。其中,$p_t$是模型对正确类别的预测概率。对于一个容易分类的样本($p_t$很大),$(1 - p_t)^\gamma$项会变得很小,从而降低了这个样本对总损失的贡献。反之,对于难以分类的样本($p_t$很小),这个调制因子接近1,其损失贡献不受影响。这使得模型在训练时能够更专注于那些难学的、分类错误的样本。在虚拟筛选数据中,非活性分子(负样本)的数量远超活性分子(正样本),Focal Loss能有效解决这个问题。 Boltz-2的具体损失函数设计如下: 二元分类损失:使用Focal Loss。 连续值回归损失 监督绝对值与差异值:损失函数同时监督两个目标: 绝对亲和力值(Labs)。 同批次内分子间的成对亲和力差异(Ldif)。 并给予后者更高(9倍)的权重。 通俗解释:为何要监督“差异值”? 不同实验室、不同批次的实验测出的IC50值,会受到底物浓度等实验条件的严重影响,导致它们的绝对值无法直接比较。然而,在同一个实验中测定的一系列分子的活性差异,则很大程度上消除了这些系统性偏差。通过重点监督这个“差异值”,模型可以学习到更本质、更可迁移的构效关系,而不过分依赖于绝对值的准确性。 处理截断数据(Censor-aware Supervision):对于那些只有上限或下限的实验数据(如“> 10μM”),损失函数被设计为只在模型预测方向错误时才产生惩罚。例如,如果真实值是“>10”,而模型预测为8,则会产生损失;如果预测为12,则不会产生损失。 连续值亲和力监督 (Affinity Value Supervision) 该部分使用Huber Loss同时监督绝对亲和力值($L_{abs}$)和同批次内分子间的成对亲和力差异($L_{dif}$),并给予后者更高(9倍)的权重。 处理截断数据(Censor-aware Supervision):这是其设计的核心亮点之一。对于那些只有下限的实验数据(例如,亲和力报告为$>10\mu M$,意味着真实值比10$\mu M$要差),模型只在预测值比该下限更好(例如预测为8$\mu M$)时才施加惩罚。这种“感知截断”的监督方式确保了模型不会因做出正确的方向性预测而受到惩罚。 绝对值损失 $L_{abs}$: \(\mathcal{L}_{abs}(y, \hat{y}, s) = \begin{cases} \text{Huber}(y, \hat{y}; \delta=0.5) & \text{if } s \text{ is } = / \text{Huber}(y, \hat{y}; \delta=0.5) \cdot I[\hat{y} < y] & \text{if } s \text{ is } > \end{cases}\) 其中,$y$是真实亲和力值,$\hat{y}$是预测值,$s$是限定符(=或$>$),$I[\cdot]$是指示函数,当条件成立时为1,否则为0。 成对差异损失 $L_{dif}$: \(\mathcal{L}_{dif}(y_1, y_2, \hat{y}_1, \hat{y}_2, s_1, s_2) = \begin{cases} \text{Huber}(y_1 - y_2, \hat{y}_1 - \hat{y}_2; \delta=0.5) & \text{if } s_1 \text{ is } = , s_2 \text{ is } = / \text{Huber}(y_1 - y_2, \hat{y}_1 - \hat{y}_2; \delta=0.5) \cdot I[\hat{y}_1 - \hat{y}_2 > y_1 - y_2] & \text{if } s_1 \text{ is } = , s_2 \text{ is } > / \text{Huber}(y_1 - y_2, \hat{y}_1 - \hat{y}_2; \delta=0.5) \cdot I[\hat{y}_1 - \hat{y}_2 < y_1 - y_2] & \text{if } s_1 \text{ is } > , s_2 \text{ is } = / 0 & \text{if } s_1 \text{ is } > , s_2 \text{ is } > \end{cases}\) 该公式精细地处理了两种化合物亲和力限定符的所有组合情况。 二元标签监督 (Binary Label Supervision) 对于区分结合物与非结合物的二元分类任务,使用Focal Loss。 \(\mathcal{L}_{binary} = \text{Focal}(\text{logits}, \gamma=1, \alpha=\lambda_{focal})\) 其中,$\gamma=1$是聚焦参数,$\lambda_{focal}$是用于平衡正负样本贡献的权重系数。 总损失函数 (Overall Loss) 最终的训练目标是以上三个损失分量的加权和。 \(\mathcal{L}_{\text{total}} = 0.9 \cdot \mathcal{L}_{dif} + 0.1 \cdot \mathcal{L}_{abs} + \mathcal{L}_{binary}\) 4. 性能评估:与物理金标准的正面交锋 对Boltz-2亲和力预测能力的评估,核心在于将其与领域内现有的基线方法进行严格比较,尤其是与被视为“金标准”的FEP等物理方法。为此,研究团队在一系列精心挑选的公开基准测试集上进行了正面交锋。 4.1 精度-速度权衡的突破:Pareto前沿图解读 Boltz-2最令人瞩目的成就,在于它彻底打破了亲和力预测领域长期存在的“速度-精度”壁垒。这一点在论文核心的Pareto前沿图上得到了最直观的体现。 这张图以计算时间为横轴(对数尺度),以预测精度(皮尔逊相关系数)为纵轴,清晰地展示了不同方法的定位: 右侧高精度区:这里是FEP和ABFE等物理模拟方法的领地。它们拥有最高的精度(Pearson R > 0.65),但计算成本也最高,通常需要数小时到数天的GPU时间。 左侧高速度区:这里是传统分子对接(Docking)和一些早期机器学习模型的区域。它们速度极快(秒级到分钟级),但精度较低(Pearson R < 0.4),难以胜任精细的先导化合物优化。 Boltz-2的革命性定位:Boltz-2(蓝色五角星)首次出现在了图的左上角——一个此前几乎为空白的区域。它以数十秒的计算时间,实现了与自动化FEP(OpenFE)相当、并接近手动优化FEP(FEP+)的预测精度。这标志着AI模型首次在公开基准上,实现了“鱼与熊掌兼得”,为大规模、高精度的亲和力预测提供了现实可行的解决方案。 4.2 方法论对决:基准、协议与性能概览 为了严格评估Boltz-2的亲和力预测能力,研究团队将其与两个代表了当前FEP技术领先水平的平台——FEP+和OpenFE——在大型公开基准数据集上进行了直接比较。这两个平台虽然使用了相同的核心数据集,但其背后的方法哲学和操作流程各有侧重,分别代表了专家精调下的精度上限和自动化流程下的普适性能,为评估Boltz-2提供了绝佳的参照系。 基准方法对比总览 下表总结了Boltz-2所比较的、以FEP为核心的“金标准”方法,以及其他关键基线。 方法 类型 核心原理 典型精度 (Pearson R) 计算成本 关键特点 Boltz-2 AI模型 基于结构预测的深度学习 ~0.62 - 0.66 ~20秒/配体 首次实现速度与精度的突破,开源,无需实验结构。 FEP+ 相对FEP 物理模拟,炼金术转换 ~0.72 - 0.78 >20小时/对 商业软件精度上限,依赖专家手动精调协议。 OpenFE 相对FEP 物理模拟,炼金术转换 ~0.63 - 0.66 6-12小时/对 自动化开源流程的代表,反映“开箱即用”的性能。 ABFE (RXRX) 绝对FEP 物理模拟,配体湮灭 ~0.6 - 0.9 (靶点依赖) >20小时/配体 高精度绝对自由能计算,对协议优化极其敏感。 MM/PBSA 端点法 MD模拟 + 连续介质模型 ~0.18 ~1小时/配体 速度较快,但精度远低于FEP,作为中等成本的物理方法参考。 对接 (Chemgauss4) 打分函数 经验/基于力场的函数 ~0.26 <1分钟/配体 速度最快,用于大规模虚拟筛选,但精度最低。 FEP+ 基准集:专家精调的“精度天花板” 该基准集由Schrödinger公司的Ross G.A.等人在2023年发表于Communications Chemistry的论文中建立,旨在打造当时最全面的公开FEP基准数据集,以评估FEP方法所能达到的最大精度(maximal accuracy)。 数据集构成与规模 该数据集通过整合大量已发表的FEP研究以及额外的数据系统构建而成,总计包含1237个化合物,覆盖了多种多样的蛋白质靶点和化学系列。其详细构成如下表所示: 数据集名称 (来源文献) 蛋白质靶点 化合物数量 FEP+ R-group set BACE1, CDK2, JNK1, Mcl1, p38, PTP1B, thrombin, TYK2 199 FEP+ charge-change CDK2, DLK, EGFR, EPHX2, IRAK4, ITK, JAK1, JNK1, PTP1B, TYK2 53 OPLS stress set BACE1, CHK1, Factor Xa, A, B, C, D, E 114 OPLS drug discovery BRD4(1), CHK1, Hsp90, scytalone dehydratase, TAF1(2), thrombin, urokinase 93 Water displacement T4 lysozyme, LigA, Mcl1, MUP-1, JAK-2, hsp90, p38 76 FEP+ Fragments BACE1, CHK1, CK2, MHT1, HSP90 79 FEP+ macrocycles - 34 FEP+ scaffold-hopping BACE1, β-tryptase, CHK1, ERα, Factor Xa 17 Merck sets CDK8, cMet, Eg5, HIF-2α, PFKFB3, SHP-2, SYK, TNKS2 264 GPCRs A2A, OX2, P2Y1 98 Bayer macrocycles Ftase, BRD4 8 Janssen BACE1 BACE1 74 MCS docking HNE, Renin 49 Miscellaneous CDK8, Galectin 10, BTK, HIV1 protease, FAAH 79 总计 - 1237 分子多样性与挑战 该数据集主要由同源物系列(congeneric series)构成,即具有相同核心骨架但周边R基不同的化合物。然而,为了全面检验FEP方法的鲁棒性,该基准集特意包含了多种极具挑战性的非同源转换,包括: 变电荷(charge-changing)转换 骨架跃迁(scaffold-hopping) 大环化(macrocyclization) 水分子置换(buried water displacement) 这使得该基准集比以往任何数据集都更能模拟真实药物研发中遇到的复杂化学场景。 实验数据来源 基准集中所有化合物的结合亲和力数据均来源于已发表的文献,涵盖了多种实验测定方法,包括直接的结合实验(binding assays)和功能性实验(functional assays)。亲和力数值类型主要为: 解离常数 Kd 抑制常数 Ki 半数抑制浓度 IC50 论文作者通过详尽的调研发现,这两类实验测得的相对结合自由能(ΔΔG)具有良好的一致性,因此均可作为验证FEP预测的可靠依据。 FEP+计算协议与精度 为达到“最大精度”的目标,该研究中的FEP+计算流程包含了大量的专家干预和手动优化。 计算协议:所有计算均使用OPLS4力场和SPC水模型。采用了副本交换溶质回火(Replica Exchange with Solute Tempering, REST)技术来增强采样,并针对不同类型的微扰(如变电荷、骨架跃迁等)使用了定制化的Lambda窗口数量(12、16或24个)。 专家手动调优:这是该基准集结果含金量的关键。研究人员对大部分体系的输入结构进行了精细的手动审查和优化,包括配体的结合模式、残基的质子化/互变异构状态等。在发现模拟采样不足时,会采取手动增加额外构象或调整微扰路径等策略。例如: 在MCL1体系中,通过手动为配体添加额外的旋转异构体状态,将成对RMSE从1.41 kcal/mol降低至1.24 kcal/mol。 在TNKS2体系中,通过将配体的质子化和去质子化两种状态都加入计算,将成对RMSE从2.10 kcal/mol降低至1.60 kcal/mol。 总体精度:在经过上述精细处理后,FEP+在该大型基准集上达到了当前已知的最高精度水平。 精度指标 FEP+ 基准集结果 (95% CI) 成对RMSE (kcal/mol) 1.25 [1.17, 1.33] 成对MUE (kcal/mol) 0.98 [0.91, 1.05] R² (决定系数) 0.56 [0.51, 0.60] Kendall τ (肯德尔等级相关系数) 0.51 [0.48, 0.55] 总而言之,FEP+基准集及其结果,代表了在一个经过专家精细准备和计算方案优化的理想条件下,顶级商业FEP软件所能达到的性能上限。这为衡量任何新兴预测方法(包括Boltz-2)的理论最高精度提供了一个黄金标准。 相关链接 论文原文: https://doi.org/10.1038/s42004-023-01019-9 GitHub仓库: https://github.com/schrodinger/public_binding_free_energy_benchmark OpenFE 基准集:自动化开源方法的“现实世界”代理 OpenFE是一个致力于开发开源炼金术自由能计算软件生态的社区项目。为了验证其性能,OpenFE社区联合了15个制药公司合作伙伴,进行了一项大规模的基准测试,而他们选择的核心公共数据集,正是上述的FEP+基准集。 与FEP+的关系:OpenFE选择使用FEP+基准集,恰恰说明了该数据集作为社区“金标准”的地位,因为它允许与顶级的商业软件进行直接比较。 测试规模:OpenFE的公开基准测试运行了FEP+数据集中的一个大规模子集,具体包括: 59个 蛋白质-配体系统 876个 独立配体 近1200次 炼金术转换计算 核心哲学差异:与FEP+结果最关键的不同之处在于,OpenFE的测试严格遵循了“开箱即用”的原则。在整个测试过程中,始终使用的是OpenFE的默认、自动化计算流程,没有为任何特定体系进行手动参数优化。 性能对比:根据其发布的报告,虽然OpenFE在使用默认协议时,其预测的绝对误差(如RMSE)总体上高于经过手动精调的FEP+结果,但其排序能力(ranking ability),即正确预测一系列化合物活性高低顺序的能力(如以Kendall’s tau衡量),表现出了与FEP+相当的竞争力。 总而言之,OpenFE的基准测试结果,可以被视为当前自动化、开源FEP方法在没有专家干预的前瞻性预测中所能达到的典型性能,更能反映其在真实世界高通量、自动化筛选流程中的表现。 相关链接 博客文章: https://blog.omsf.io/the-free-energy-of-everything-benchmarking-openfe/ GitHub仓库: https://github.com/OpenFreeEnergy/openfe-benchmarks ABFE (RXRX协议) 基准集:自动化与协议优化的前沿探索 在另一项由Wu Z.等人发表于ChemRxiv(2025)的研究中,重点并非构建一个全新的大规模数据集,而是针对绝对结合自由能(ABFE)计算中存在的稳定性差和结果复现性不佳的问题,开发了一套经过深度优化的新协议,并将其在成熟的基准体系上进行了验证。 基准体系与实验数据 测试系统:该研究选择了四个广为人知且经过充分验证的激酶靶点进行基准测试:TYK2, P38, JNK1, CDK2。这些体系的结构和实验数据源自更早的社区基准集(如Chen et al.的工作),确保了数据的可靠性。 配体选择:所有参与测试的配体均为电中性分子,以避免因净电荷变化带来的额外计算复杂性。 力场:蛋白质使用AMBER14SB力场,配体则使用OpenFF 2.2.0力场。 核心创新:RXRX协议 vs Aldeghi协议 该研究的核心在于展示其新开发的RXRX协议相比于广泛使用的基线Aldeghi协议的优越性。其关键创新点在于: 智能化的约束选择:Aldeghi协议使用基于原子移动性的MDRestraintsGenerator来选择约束,有时会导致模拟不稳定。而RXRX协议则开创性地利用蛋白质-配体间的氢键信息来选择约束原子,确保了约束施加在关键的相互作用上,从而从根本上避免了数值不稳定性。 优化的Lambda调度:Aldeghi协议采用线性的Lambda调度。RXRX协议则通过最小化最终MBAR分析误差的方式,搜索并确定了非线性的、最优的Lambda窗口分布方案,尤其是在处理范德华力(LJ)相互作用的湮灭阶段。 重排的炼金术路径:Aldeghi协议通常是先施加所有约束,再依次湮灭静电和LJ相互作用。RXRX协议则重新安排了这一顺序,将约束的施加与相互作用的湮灭分阶段并行进行(例如,在湮灭静电作用时,仅施加二面角约束),进一步提升了模拟的稳定性和收敛性。 精度提升结果 通过上述优化,RXRX协议在所有四个靶点上都展现了优于基线协议的性能,不仅降低了重复计算间的方差(提高了复现性),也提升了与实验值的吻合度。 靶点 评估指标 Aldeghi 协议 RXRX 协议 (优化后) TYK2 RMSE (kcal/mol) 0.99 0.76 Kendall’s τ 0.48 0.74 P38 RMSE (kcal/mol) 0.91 0.86 Kendall’s τ 0.50 0.46 JNK1 RMSE (kcal/mol) 1.05 0.89 Kendall’s τ 0.61 0.61 CDK2 RMSE (kcal/mol) 0.93 0.76 Kendall’s τ 0.48 0.49 该研究的价值在于,它展示了通过精细优化ABFE计算协议,可以在不改变力场和MD引擎的前提下,显著提升计算的稳定性、复现性和准确性。这为Boltz-2等AI方法提供了一个更具挑战性、代表了自动化ABFE计算前沿水平的性能基准。 预印本原文: https://doi.org/10.26434/chemrxiv-2025-q08ld-v2 快速打分函数与端点法简介 对接打分函数 (如Chemgauss4):这是分子对接程序中用于评估配体结合姿态和粗略估计亲和力的数学函数,速度极快但精度有限。 MM/PBSA:一种流行的“端点法”。它通过对MD模拟轨迹的始末状态进行计算,结合连续介质溶剂模型来估算结合自由能,比对接精确,但远不如FEP严谨。 量子化学方法 (如FMO):片段分子轨道法(FMO)是一种半经验的量子化学方法,通过将大体系分割成小片段进行计算,以在可接受的时间内获得更精确的相互作用能,但仍属于打分函数范畴。 4.3 在FEP+基准集上的详细表现 Boltz-2与FEP方法的正面比较,主要在FEP+基准集上进行。这是一个由Schrödinger公司建立的、包含1237个化合物的大规模、高质量数据集,被广泛视为行业金标准。结果图详见第一篇推送。 在4-靶点专注子集上: Boltz-2取得了0.66的平均皮尔逊相关系数(Pearson R)。 OpenFE(自动化FEP)的相关系数为0.66。 FEP+(专家精调FEP)的相关系数为0.78。 结论:在此数据集上,Boltz-2的性能与自动化的OpenFE完全相当,并显著超越了所有其他快速物理方法和机器学习基线,与代表精度上限的FEP+处于同一量级。 在大型OpenFE子集上(876个复合物): Boltz-2的Pearson R达到了0.62。 OpenFE的相关系数为0.63。 FEP+的相关系数为0.72。 结论:即使在规模扩大十倍的更大数据集上,Boltz-2的性能依然紧随自动化FEP方法,显示了其强大的稳定性和泛化能力。 这些结果清晰地表明,AI模型在亲和力预测精度上,首次达到了可以与严谨物理模拟方法直接对话的水平。 4.4 问题:Boltz-2如何保证FEP基准数据不被混入训练集? Boltz-2采用了一套严格且多层次的数据泄漏控制策略,以确保基准测试的公正性和可靠性。这套策略主要基于蛋白质序列聚类,并辅以配体化学相似性分析作为补充验证。 graph LR subgraph "第一步:基于蛋白质序列的严格过滤「主要策略」" A["训练数据集<br/>「含所有亲和力数据」"] --> C[["**蛋白质序列聚类**<br/>「使用mmseqs, 90%序列一致性为阈值」"]]; B["测试/验证数据集<br/>「如FEP+, CASP16」"] --> C; C --> D{"判定:<br/>簇中是否**同时包含**<br/>训练集与测试集蛋白?"}; D -- "是" --> E["从训练集中<b>移除</b><br/>该簇的全部蛋白"]; D -- "否" --> F["保留该簇的<br/>训练集蛋白"]; E --> G[("产出:<br/><b>无蛋白质序列泄漏的训练集</b>")]; F --> G; end subgraph "第二步:配体化学相似性分析「辅助验证」" G --> H[["分析步骤:<br/>计算测试集配体与<br/>“干净”训练集配体的**最大Tanimoto相似度**"]]; B --> H; H --> I[("最终结论:<br/><b>模型性能与配体相似度无显著相关性</b><br/>「进一步证实模型的泛化能力」")]; end style G fill:#dcedc8,stroke:#388e3c,stroke-width:2px,stroke-dasharray: 5 5 style I fill:#c8e6c9,stroke:#388e3c,stroke-width:4px style D fill:#fff3e0,stroke:#fb8c00,stroke-width:2px 主要策略:基于蛋白质序列相似性的严格过滤 这是防止数据泄漏的核心机制。 序列聚类 研究团队首先使用 mmseqs easy-cluster 工具,将亲和力训练集、验证集和测试集中的所有蛋白质序列进行聚类。聚类的标准是90%的序列一致性(sequence identity)。这意味着,任何两个序列如果相似度达到或超过90%,它们就会被分到同一个簇(cluster)中。 训练集清洗 在聚类完成后,进行关键的过滤步骤:如果某个蛋白质簇中,既包含了来自训练集的蛋白质,又包含了来自验证集或测试集的蛋白质,那么所有来自该簇的训练集蛋白质都将被移除。 这一策略的核心思想是,确保模型在评估时面对的蛋白质靶点,其序列与训练集中见过的任何靶点都足够不相似(相似度低于90%)。这可以有效防止模型仅仅因为“记住”了训练集中某个同源蛋白的特性,而对测试集中的相似蛋白做出看似准确的预测。 辅助策略:配体化学相似性分析 作为额外的验证手段,特别是在评估FEP+和CASP16这两个重要基准集时,团队还分析了配体层面的数据泄漏可能性。 FEP+基准集分析 他们计算了FEP+测试集中每个化合物,与其在整个亲和力训练集中的最相似化合物之间的Tanimoto相似度。分析结果显示,模型性能与这种配体相似度之间没有显著的相关性。这表明,Boltz-2的优异表现并非因为它“见过”化学结构相似的训练样本,而是其真正学习到了更普适的构效关系。 CASP16基准集分析 对CASP16数据集也进行了同样的分析,发现其测试配体与训练集的最高Tanimoto相似度也处于一个足够低的水平,从而减轻了对配体层面数据泄漏的担忧。 例外情况 论文明确指出,上述基于序列的过滤策略应用于所有公共基准数据集,但有两个例外: CASP16数据集 Recursion内部的私有数据集 原因是,CASP16的数据发布时间晚于Boltz-2的训练数据截止日期,因此天然不存在泄漏问题。而Recursion的内部数据集是专有的,本身就不存在于公共的训练数据源中。 通过这套以蛋白质序列过滤为主、配体相似性分析为辅的严谨流程,Boltz-2最大限度地保证了其在FEP+等关键基准测试上性能评估的客观性和公正性。
Machine Learning & AI
· 2025-10-08
Boltz-2主干网络Pairformer架构深度剖析
2.1 Boltz-2 主干网络 (Trunk): Pairformer 架构 Boltz-2的主干网络(Trunk)是其结构预测能力的核心,其设计在很大程度上借鉴并扩展了前代模型的思想,其核心是Pairformer模块。与早期架构相比,Pairformer的一个关键演进是显著降低了对多序列比对(MSA)信息的直接和持续依赖,转而将计算重心完全放在对成对表示(pair representation)和单一表示(single representation)的深度迭代精炼上。这种设计使其能更高效地处理包含多种分子类型(蛋白质、核酸、小分子等)的复杂生物系统。 Pairformer 整体架构与数据流 Pairformer是Boltz-2主干网络中进行迭代优化的核心引擎。它接收初始的单一表示(描述每个残基/原子的特征)和成对表示(描述每对残基/原子间的关系),并通过一系列结构相同但参数独立的处理块(Blocks)进行循环精炼。 输入: 单一表示 (Single Representation) $s$:一个二维张量,尺寸为 $(n \times c_s)$,其中 $n$ 是系统中所有残基和原子(tokens)的总数,$c_s$ 是编码每个token自身属性的特征通道数。 成对表示 (Pair Representation) $z$:一个三维张量,尺寸为 $(n \times n \times c_z)$,其中 $c_z$ 是特征通道数。它编码了系统中每对token $(i, j)$ 之间的空间和化学关系。 处理流程: 初始的 $s$ 和 $z$ 矩阵,连同模板信息,被送入一个包含多个独立参数的Pairformer块的堆栈中进行处理。 Boltz-2将此核心堆栈扩展到了64层,以增强模型的表达能力和性能。 在主循环中,信息主要在成对表示 $z$ 中通过三角更新(Triangle Updates)和三角自注意力(Triangle Self-Attention)进行横向传递和整合,以捕捉复杂的几何约束。 单一表示 $s$ 的信息通过一个带有成对偏置的注意力机制(Single attention with pair bias)被更新,并反过来影响成对表示的计算。 整个主干网络的结果会通过“循环”(Recycling)机制多次反馈,将上一轮的输出作为下一轮的输入,进一步精炼表示。 输出: 经过64次迭代精炼后,主干网络输出最终的单一表示和成对表示。这些高度精炼的表示随后被送入扩散模块(Diffusion Module),用于直接生成最终的三维原子坐标。 以下是Pairformer整体架构的示意图: graph TD subgraph Boltz-2 Trunk A_IN[初始单一表示 s] --> B_MSA[轻量化MSA模块]; TEMPLATE[模板信息] --> C_TEMPLATE[模板模块]; C_IN[初始成对表示 z] --> D_PAIR[Pairformer 核心循环]; B_MSA --> D_PAIR; C_TEMPLATE --> D_PAIR; subgraph D_PAIR [Pairformer 核心循环 「64个独立块」] direction LR INPUT_S["s_in"] --> BLOCK; INPUT_Z["z_in"] --> BLOCK[Pairformer 块]; BLOCK --> OUTPUT_S["s_out"]; BLOCK --> OUTPUT_Z["z_out"]; end D_PAIR -- "循环多次 「Recycling」" --> D_PAIR; D_PAIR --> E_OUT[最终单一表示 s']; D_PAIR --> F_OUT[最终成对表示 z']; end E_OUT --> G[扩散模块]; F_OUT --> G[扩散模块]; G --> H[原子坐标]; Pairformer 模块核心组件解析 每个Pairformer块内部由一系列精心设计的子模块构成,旨在高效地在成对表示中传播和整合信息。 graph LR subgraph "单个Pairformer块内部流程" Z_IN[输入 z_ij] --> TU_OUT[三角更新 「出边」]; TU_OUT --> TU_IN[三角更新 「入边」]; TU_IN --> TSA_START[三角自注意力 「起始节点」]; TSA_START --> TSA_END[三角自注意力 「结束节点」]; TSA_END --> TRANS_Z[过渡层 「z」]; S_IN[输入 s_i] --> S_ATT[单序列自注意力]; TRANS_Z -- "提供偏置" --> S_ATT; S_ATT --> TRANS_S[过渡层 「s」]; TRANS_Z --> Z_OUT[输出 z_ij']; TRANS_S --> S_OUT[输出 s_i']; end 三角更新 (Triangle Update) 三角更新是Pairformer中一种不基于注意力的信息传播机制,其核心思想是利用几何上的三角关系来更新两个节点(i,j)之间的关系表示。它通过一个中间节点 $k$ 来传递信息:如果节点 $i$ 和 $k$ 之间的关系已知,并且节点 $k$ 和 $j$ 之间的关系也已知,那么这些信息就可以被整合用来推断和更新节点 $i$ 和 $j$ 之间的关系。这种机制在直觉上与三角不等式的几何约束思想相通,但在实现上是特征层面的信息整合。 该过程分为两个步骤: 基于出边的三角更新 (Triangle update using outgoing edges): 对于每一对 $(i, j)$,它会遍历所有第三个节点 $k$,并整合从 $i$ 出发到 $k$ 的边 $(i, k)$ 和从 $j$ 出发到 $k$ 的边 $(j, k)$ 的信息。 基于入边的三角更新 (Triangle update using incoming edges): 类似地,它会整合从 $k$ 进入到 $i$ 的边 $(k, i)$ 和从 $k$ 进入到 $j$ 的边 $(k, j)$ 的信息。 这些更新通常通过门控的乘法(multiplicative updates)实现,能够高效地在成对表示矩阵中传播结构信息。 三角自注意力 (Triangle Self-Attention) 三角自注意力的核心原理是,为了更新节点对 $(i, j)$ 的表示 $z_{ij}$,模型应该“关注”所有能与 $(i, j)$ 形成三角形的中间节点 $k$。这意味着 $z_{ij}$ 的更新会聚合来自所有边对 ${(i, k), (j, k)}$ 的信息。这使得模型能够学习到复杂的、高阶的残基间相互作用和空间约束。 该机制同样分为两个独立的模块: 起始节点为中心的三角自注意力 (Triangle self-attention around starting node): 对于边 $(i, j)$,此模块的注意力计算主要关注从共享的起始节点 $i$ 出发到所有其他节点 $k$ 的边 $(i, k)$。 结束节点为中心的三角自注意力 (Triangle self-attention around ending node): 对于边 $(i, j)$,此模块的注意力计算则关注汇聚到共享的结束节点 $j$ 的、来自所有其他节点 $k$ 的边 $(k, j)$。 数学表述 (以起始节点为例): 该过程遵循标准的多头自注意力(Multi-Head Self-Attention, MHSA)范式,但其Query, Key, Value的定义和组合方式体现了“三角”思想。对于需要更新的成对表示 $z_{ij}$,我们首先通过线性变换生成Query (q)、Key (k)和Value (v)向量。这里的关键在于,q 来自于目标边 $(i, j)$ 本身,而 k 和 v 来自于形成三角形的另一条边 $(i, k)$。 Query, Key, Value 的生成: \[q_{ij} = W_q z_{ij} / k_{ik} = W_k z_{ik} / v_{ik} = W_v z_{ik}\] 其中 $W_q, W_k, W_v$ 是可学习的权重矩阵。 注意力分数计算: \[\alpha_{ijk} = \text{softmax}_k \left( \frac{q_{ij}^T k_{ik}}{\sqrt{d_k}} + b_{ik} \right)\] 这里,注意力分数基于边 $(i, j)$ 和所有以 $i$ 为起点的边 补充流程图 AI生成,请自行甄别 总览 mindmap root(Boltz-2<br/>核心特点总览) ::icon(fa fa-bolt) **革命性的亲和力预测**<br/>「千倍加速,精度媲美FEP」 统一的通用框架<br/>「蛋白、核酸、配体」 **动态与系综建模**<br/>「学习MD/NMR数据<br/>预测B-factor」 **高度用户可控性** 方法条件化「X-ray, NMR, MD」 模板引导「支持多聚体,可软可硬」 口袋与接触约束「用户指定相互作用」 降低对MSA的依赖<br/>「提升单序列性能」 物理真实性校正<br/>「通过Boltz-steering<br/>减少碰撞、修正手性」 完全开源<br/>「模型、代码、数据<br/>均在MIT许可下发布」 当前局限<br/>「难捕捉大的构象变化<br/>未明确支持辅因子/离子」 结构预测流程 graph TB subgraph " " direction LR subgraph "输入层 提供所有原始信息" A["序列「蛋白、核酸」<br/>SMILES「小分子」"] B["生物学上下文<br/>「MSA & 模板」"] C["用户控制信息<br/>「口袋、约束、实验方法」"] end end subgraph " " TRUNK("<b>主干网络 「Trunk」</b><br/>大脑:提取深层特征<br/>核心技术: Pairformer 堆栈<br/>输出: <b>单一表示 & 成对表示</b>") end A --> TRUNK B --> TRUNK C --> TRUNK subgraph "三大并行的预测模块" direction LR STRUCT("<b>1. 结构预测模块</b><br/>「生成器:雕刻3D结构」<br/>技术: 扩散模型<br/>可选: Boltz-steering 物理校正") CONF("<b>2. 置信度预测模块</b><br/>「质检员:评估结构质量」<br/>输入: 主干网络表示 + 预测的3D结构<br/>输出: 置信度分数「pLDDT、ipTM等」") AFF("<b>3. 亲和力预测模块</b><br/>「审判官:判定结合强度」<br/>输入: 主干网络表示 + 预测的3D结构<br/>输出: 结合可能性 & 亲和力值") end TRUNK -- "内部表示" --> STRUCT TRUNK -- "内部表示" --> CONF TRUNK -- "内部表示" --> AFF STRUCT -- "预测的3D原子结构" --> CONF STRUCT -- "预测的3D原子结构" --> AFF style TRUNK fill:#fff3e0,stroke:#fb8c00,stroke-width:2px style STRUCT fill:#e3f2fd,stroke:#1e88e5,stroke-width:2px style CONF fill:#e8f5e9,stroke:#4caf50,stroke-width:2px style AFF fill:#fce4ec,stroke:#d81b60,stroke-width:2px MD数据整合 数据集名称 主要内容 模拟细节 数据采样/筛选策略 最终规模 来源文献 MISATO 蛋白质-小分子配体复合物 NVT系综,300K,8 ns 移除配体漂移(>12Å)或含聚糖/修饰肽的轨迹使用全部100帧 11,235个系统 Siebenmorgen et al. (2024) ATLAS 蛋白质 NPT系综,300K,100 ns 从轨迹最后10ns中随机均匀采样100帧 1,284个蛋白质 Vander Meersche et al. (2024) mdCATH 蛋白质 NVT系综,320K,时长可变(最长500ns) 仅使用轨迹最后10%进行训练 5,270个系统 Mirarchi et al. (2024) graph TD subgraph "Boltz-2的MD数据整合评估" direction LR subgraph "性能评估「如何衡量动态预测能力」" direction TB C["<b>基于RMSF的指标</b>"] C --> C1["计算方法: Boltz-2生成预测系综<br/>计算其RMSF并与真实MD轨迹的RMSF比较"] C --> C2["具体指标: Pearson R, Spearman ρ, RMSE"] D["<b>基于lDDT的系综指标</b>"] D --> D1["<b>Precision lDDT</b><br/>「预测构象的合理性」"] D --> D2["<b>Recall lDDT</b><br/>「对真实构象多样性的覆盖度」"] D --> D3["<b>Diversity lDDT</b><br/>「预测系综自身的多样性」"] end subgraph "训练方法「AI如何学习动态过程」" direction TB A["<b>系综监督 (Ensemble Supervision)</b>"] A --> A1["聚合距离图监督<br/>「学习系综的平均空间特征」"] A --> A2["随机坐标监督<br/>「从系综中随机采样单帧<br/>用于坐标去噪训练」"] B["<b>B-factor 监督</b>"] B --> B1["学习原子级的局部柔性<br/>「通过RMSF计算B-factor作为监督信号」"] end end style A fill:#e3f2fd,stroke:#1e88e5,stroke-width:2px style B fill:#e3f2fd,stroke:#1e88e5,stroke-width:2px style C fill:#e8f5e9,stroke:#4caf50,stroke-width:2px style D fill:#e8f5e9,stroke:#4caf50,stroke-width:2px 亲和力训练 图一:数据采样与批次组装流程 这张图的核心是展示Boltz-2如何智能地从庞大的数据源中,为每一个训练批次(batch)精心挑选出信息量最大的样本。 graph TD subgraph "图一:数据采样与批次组装流程" F["开始一个训练批次"] --> G{"选择数据源<br/>「连续值 vs. 二元标签」"}; G -- "连续值亲和力" --> H("<b>活性悬崖采样器</b><br/>根据IQR分数优先选择信息量大的实验"); G -- "二元标签" --> I("<b>结合物-诱饵采样器</b><br/>确保1个结合物配对4个同实验的诱饵"); H --> J["采样一批「5个」<br/>来自同一实验的分子"]; I --> J; J --> K{"组装批次数据"}; subgraph "输入自阶段一的预处理数据" C_IN["已缓存的共识口袋"]; E_IN["预计算的Trunk特征"]; end C_IN -- "用于裁剪" --> K; E_IN -- "提供特征" --> K; K --> K_OUT(["产出:<br/><b>准备好的训练批次</b><br/>「已裁剪并包含所有特征」"]); end style H fill:#fff9c4,stroke:#fdd835,stroke-width:2px style I fill:#e8f5e9,stroke:#43a047,stroke-width:2px style K_OUT fill:#dcedc8,stroke:#689f38,stroke-width:4px 图二:模型训练与参数更新流程 这张图则展示了当一个准备好的训练批次输入到模型后,模型内部如何进行计算、评估误差,并最终更新自身参数的循环过程。 graph TD subgraph "图二:模型训练与参数更新" A["输入:<br/><b>准备好的训练批次</b><br/>「来自图一」"] --> L["<b>Affinity模块</b>"]; subgraph L["Affinity模块内部"] direction TB L1["界面聚焦的PairFormer<br/>「4/8层」"] --> L2["双预测头<br/>「结合可能性 & 亲和力值」"]; end L --> M{"计算总损失 「L_total」"}; subgraph M["损失函数构成"] direction TB M1["成对差异损失 L_dif<br/>「高权重」"]; M2["绝对值损失 L_abs<br/>「低权重」"]; M3["二元分类损失 L_binary<br/>「Focal Loss」"]; end M --> N["<b>反向传播</b><br/>「仅更新Affinity模块权重」"]; N --> O((下一个训练批次...)); end style A fill:#dcedc8,stroke:#689f38,stroke-width:2px style L fill:#fce4ec,stroke:#d81b60,stroke-width:2px style M fill:#ffebee,stroke:#e53935,stroke-width:2px style N stroke-dasharray: 5 5 虚拟筛选 mindmap root(Boltz-2 虚拟筛选) ::icon(fa fa-search-dollar) **回顾性筛选**<br/>「验证模型基础性能」 数据集: **MF-PCBA** 核心结果: **性能大幅领先**<br/>「平均精度翻倍, 富集因子达18.4」 **前瞻性筛选「TYK2靶点」**<br/>「展示真实世界应用成果」 验证方法: **Boltz-ABFE**<br/>「AI驱动的高精度绝对FEP」 核心发现1: **生成式流程更优**<br/>「发现更高亲和力的分子」 核心发现2: **AI的“创造力”**<br/>「生成了化学新颖且合理有效的分子」 **筛选工作流与方法**<br/>「两种互补的筛选策略」 固定库筛选 对商业库「如Enamine HLL」进行穷举打分 使用并行Boltz-2 workers加速 生成式筛选 模型组合: **Boltz-2 + SynFlowNet** 异步训练闭环<br/>「生成→打分→训练→再生成」 奖励函数: **Boltz-2亲和力分数** 目标: 探索巨大的可合成化学空间 Limitations mindmap root(Boltz-2的局限性 与未来方向) ::icon(fa fa-triangle-exclamation) )分子动力学「MD」预测( 性能未显著超越基线 「与AlphaFlow, BioEmu等专门模型相比」 原因1:MD数据集**规模相对较小** 原因2:**训练后期**才引入MD数据 原因3:针对多构象的**架构改动较小** )亲和力预测的依赖性( **核心依赖** 亲和力预测的准确性 高度依赖上游结构预测的质量 **失败模式1** 口袋或界面重构不准确 **失败模式2** 未明确处理**辅因子** 「离子、水分子、其他结合伴侣」 **失败模式3** 亲和力模块的**裁剪尺寸不足** 「可能截断长程相互作用或变构口袋」 )通用结构预测( 与前代模型「如Boltz-1」性能相似 原因:结构训练数据和架构设计大体相同 难以捕捉**大的构象变化** 「如结合诱导的构象变化」 对大型复合物的复杂相互作用预测仍具挑战 )亲和力预测的适用范围( 在不同实验和靶点上**性能差异巨大** **性能差异的来源待研究** 上游结构预测不准确? 对某些蛋白家族泛化能力有限? 对分布外的化学空间不够鲁棒?
Machine Learning & AI
· 2025-10-08
深入解析Boltz-2的动态结构建模:从系综监督到性能评估
深入解析Boltz-2的动态结构建模:从系综监督到性能评估 摘要 在对Boltz-2革命性的亲和力预测能力进行初步解读后,本文将深入其技术内核,系统性地剖析该模型在生物分子动态学建模方面的方法论与实证结果。静态结构在描绘生物分子功能方面存在固有局限,而捕捉由分子动力学(MD)和核磁共振(NMR)等技术揭示的构象系综,是理解变构效应、柔性口袋识别与药物诱导契合等复杂生物学现象的关键。本文将详细阐述Boltz-2如何处理并学习大规模MD与NMR系综数据,重点介绍其独特的系综监督机制、B-factor预测模块,以及实现用户精细控制的方法条件化策略。同时,我们将深入分析模型动态预测能力的量化评估指标(包括RMSF与lDDT相关指标),并展示其在标准基准测试集上的性能表现。本文旨在为计算生物学、计算化学及AI药物研发领域的研究人员,提供一份关于Boltz-2动态建模能力的全面、严谨且深刻的技术报告。 1. 数据策略:为静态模型注入动态信息 Boltz-2在动态建模上的突破,根植于其对训练数据的战略性扩展,即从依赖单一静态结构(如X射线晶体衍射结构)转向主动整合并学习构象系综(conformational ensembles)。 1.1 分子动力学(MD)数据集的整合与处理 Boltz-2整合了三个大型、公开的MD数据集,旨在让模型学习溶液环境中的生物分子动态行为。 MISATO数据集 来源: Siebenmorgen et al. (2024)。 内容: 主要为蛋白质-小分子配体复合物。 模拟细节: NVT系综(粒子数、体积、温度恒定),300K温度,8纳秒(ns)模拟时长。 数据处理与筛选: 包含多残基配体(如聚糖)或修饰肽的轨迹被丢弃。若在轨迹的任何一帧中,配体与蛋白质的距离超过12Å,则该轨迹被移除。Boltz-2在训练时使用了轨迹的全部100个数据帧。 最终规模: 经过筛选后,贡献了11,235个系统。 ATLAS数据集 来源: Vander Meersche et al. (2024)。 内容: 主要为蛋白质。 模拟细节: NPT系综(粒子数、压强、温度恒定),300K温度,100纳秒(ns)模拟时长。 数据处理与筛选: 为聚焦于更接近平衡态的构象,Boltz-2从每条轨迹的最后10纳秒中随机均匀采样100帧用于训练。 最终规模: 包含1,284个蛋白质。 mdCATH数据集 来源: Mirarchi et al. (2024)。 内容: 主要为蛋白质。 模拟细节: NVT系综,320K温度,模拟时长可变,最长可达500纳秒(ns)。 数据处理与筛选: 同样为了聚焦于平衡态构象,仅使用每条轨迹的最后10%进行训练。 最终规模: 包含5,270个系统。 1.2 核磁共振(NMR)系综数据的应用 除了MD模拟,NMR实验解析的结构通常在PDB文件中以多个模型(multi-model)的形式存在,这本身就构成了一个实验测定的构象系综。Boltz-2在数据处理时,会将这些PDB文件中的每一个模型作为系综中的一个独立构象样本进行处理,从而将来自实验的动态信息也纳入学习范畴。 2. 训练方法论:让AI理解并复现动态过程 获取动态数据是第一步,如何设计有效的训练机制让模型理解并复现这些动态信息是核心挑战。Boltz-2为此采用了多种环环相扣的监督策略。 2.1 核心机制:系综监督(Ensemble Supervision) 系综监督是Boltz-2处理动态数据的核心机制,它体现在对距离图(Distogram)和原子坐标(Coordinates)两个层面的监督上。 2.1.1 聚合距离图监督 技术细节: 模型的Trunk模块负责预测残基/原子间的距离分布,即距离图。对于一个包含K个构象的系综,传统的做法是只监督其中一个构象。而Boltz-2则采取了更先进的策略: 距离图的表示: 首先,需要明确“距离图”在模型中的具体表示。它并非一个简单的二维矩阵,而是一个三维张量(Tensor),形状为(N, N, D),其中N是残基/原子的数量,D是距离被划分的离散区间(bin)的数量。因此,对于残基对(i, j),其对应的distogram[i, j, :]是一个长度为D的向量。当一个构象被转换为独热编码(one-hot encoded)的距离图时,意味着如果其i-j距离落在第k个区间,那么这个向量的第k个位置为1,其余为0。 聚合操作: 对于系综中的K个构象,模型会计算出K个形状为(N, N, D)的独热编码距离图张量。聚合操作即是在这K个张量上进行逐元素平均(element-wise averaging)。 目标距离图: 聚合后得到的是一个单一的、形状仍为(N, N, D)的目标张量。此时,每个位置(i, j)的向量不再是独热的,而是一个概率分布向量,其第k个元素的值代表了在整个系综中,残基对(i, j)间距离落在第k个区间的概率。 损失函数: 模型的损失函数(加权的多元交叉熵)会计算其预测的距离图与这个聚合的概率性目标距离图之间的差异。 作用与意义: 这种方法迫使模型学习的不是某个特定瞬时构象的空间关系,而是整个系综在统计意义上的平均空间特征和构象多样性,从而生成更鲁棒、更能代表动态平均水平的结构表示。 2.1.2 随机采样坐标监督 技术细节: 核心架构: 根据原文,Boltz-2的去噪模块(Denoising Module)核心架构与Boltz-1保持一致 。 训练精度: 一个重要的技术设置是,去噪模块在训练时使用了完整的float32浮点数精度。这是因为团队发现,使用较低的精度(例如在Trunk模块中使用的bfloat16)会导致训练过程出现不稳定现象 。 扩散过程超参数: 本文去噪过程最特别的设置体现在扩散过程的超参数上。如论文附录中的表7所示,Boltz-2调整了多项关键参数以区别于Boltz-1,并选择向AlphaFold3的默认设置看齐,以吸收社区最先进的实践经验。这些参数直接控制噪声的施加与移除过程,例如: sigma_min: 0.0001 rho: 7 gamma_0: 0.8 gamma_min: 1.0 noise_scale: 1.003 step_scale: 1.5 系综监督策略: 在监督方式上,对于每一个包含K个构象的系综样本(来自MD或NMR),Boltz-2在每个训练迭代中都会从中随机采样一个构象用于坐标去噪的监督 。这个被采样的单一构象将被用于后续标准的坐标加噪和去噪流程。 通俗解释:去噪训练如何工作? 扩散模型的训练是一个“自监督”的过程。首先,我们从数据集中取一个“干净”的真实结构$M_0$。然后,我们人为地向其添加一个已知的、随机的高斯噪声$\epsilon$,得到一个“损坏”的结构$M_t$。接着,我们将这个损坏的结构$M_t$和时间步$t$输入到Denoising网络中。网络的目标是预测出我们当初添加的那个噪声$\epsilon$(或者等价地,预测出原始的$M_0$)。最后,我们计算网络预测的噪声和真实的噪声$\epsilon$之间的差异(通常是均方误差MSE),这个差异就是损失函数,通过最小化这个损失,网络就学会了如何“去噪”。 作用与意义: 通过在每次迭代中暴露给模型一个来自系综的、略有不同的构象,模型得以充分学习到蛋白质的内在柔性和构象空间的多样性,避免了对单一“标准”构象的过拟合。而采用经过验证的、源自AlphaFold3的扩散超参数,则确保了去噪过程本身是稳定且高效的,站在了巨人的肩膀上。 B-factor 监督:捕捉原子级的局部柔性 B-factor(或称温度因子、位移参数)是描述晶体结构中每个原子位置不确定性的参数,值越高通常意味着该原子越柔性或活动范围越大。 B-factor预测模块 输入:来自Trunk模块最后一层的单一Token表示(single token representation)。这个表示已经编码了该Token(如一个氨基酸残基)的序列和结构环境信息。 输出:对该Token代表性原子(如Cα原子)的B-factor值的标量预测。 监督方式 对于实验结构,直接使用PDB文件中提供的B-factor作为真值。 对于MD模拟轨迹,B-factor通过每个原子的均方根涨落(Root Mean Square Fluctuation, RMSF)计算得到。 公式推导 经典推导思路 Debye–Waller 因子(DWF)的形式 在晶体衍射中,原子热振动导致衍射强度被衰减,这个衰减由 Debye–Waller 因子描述。对于各向同性的简化,DWF 随散射矢量 $ q $ 的依赖为: \[\mathrm{DWF}(q) = \exp\left(-\frac{q^2 \langle u^2 \rangle}{3}\right)\] 其中 $\langle u^2 \rangle$ 是原子位移的均方偏移(mean squared displacement)。(参考:Debye–Waller factor - Wikipedia) 衍射中常用的 B-因子定义 在晶体学里,人们往往把 DWF 写成角度和波长的形式: \[\mathrm{DWF} = \exp\left(-2B \frac{\sin^2\theta}{\lambda^2}\right)\] 这里 $\theta$ 是衍射角,$\lambda$ 是入射 X 射线波长,$B$ 就是我们常说的各向同性 B-因子(单位 Ų)。 将两种形式对应起来 首先,用几何关系把 $ q $ 用 $\theta$ 和 $\lambda$ 表示: \[q = \frac{4\pi \sin\theta}{\lambda}\] 于是: \[\exp\left(-\frac{q^2 \langle u^2 \rangle}{3}\right) = \exp\left(-\frac{16\pi^2}{3} \frac{\sin^2\theta}{\lambda^2} \langle u^2 \rangle\right)\] 要和 $\exp\left(-2B \frac{\sin^2\theta}{\lambda^2}\right)$ 对应,需满足指数系数相等,即: \[2B = \frac{16\pi^2}{3} \langle u^2 \rangle \quad \Longrightarrow \quad B = \frac{8\pi^2}{3} \langle u^2 \rangle\] 识别 RMSF 在分子动力学中,RMSF(Root-Mean-Square Fluctuation)正好就是 $\sqrt{\langle u^2 \rangle}$,因此: \[B = \frac{8\pi^2}{3} \cdot \text{RMSF}^2\] 训练影响:B-factor的预测损失作为一个带权重的附加项(根据论文Table 6,bfactor loss weight为 $ 1 \times 10^{-3} $)被加入到模型的总损失函数中。这意味着模型在优化主要结构预测任务的同时,也必须努力学习和预测每个原子的动态柔性。 2.3 方法条件化:实现对预测风格的精细控制 由于训练数据来源多样(X-ray, NMR, MD等),Boltz-2引入了方法条件化(Method Conditioning)机制。 实现方式: 在训练时,每个样本的来源方法类型作为一个one-hot编码的特征输入到模型的单一Token表示中。 推理应用: 在推理预测时,用户可以手动指定一个方法类型作为输入条件。 效果: 这使得用户可以引导模型生成符合特定实验方法特性的结构。例如,当条件设为“MD”时,模型倾向于生成更多样化的构象系综;当条件设为“X-ray”时,则倾向于生成更收敛、更紧凑的单一构象。 3. 性能评估:动态预测能力的量化与实证 Boltz-2的动态预测能力通过一系列严谨的指标和基准测试得到了验证。 3.1 评估指标详解 3.1.1 lDDT分数 (local Distance Difference Test) lDDT是一种无需结构叠合的蛋白质结构评估方法。它通过评估预测结构中每个残基的局部原子环境是否与真实结构保持一致来打分。 lDDT分数核心公式 对于一个残基,其lDDT分数是其在多个距离差异容忍阈值下保留的局部距离分数的平均值。一个简化的核心思想可以表示为: \[\text{lDDT}_{\text{score}} = \frac{1}{N_{\text{pairs}}} \sum_{i,j} I(|d_{ij}^{\text{pred}} - d_{ij}^{\text{true}}| < \tau)\] 其中: $ N_{\text{pairs}} $ 是一个残基与其局部邻居(如15Å内)形成的原子对总数。 $ d_{ij}^{\text{pred}} $ 和 $ d_{ij}^{\text{true}} $ 分别是预测和真实结构中原子 $ i $ 和 $ j $ 的距离。 $ \tau $ 是一个距离差异的容忍阈值(例如1Å)。 $ I(\cdot) $ 是指示函数,当距离差异小于阈值时为1,否则为0。 完整的lDDT分数会计算在多个阈值(如0.5, 1, 2, 4Å)下的分数并取平均,从而得到一个更全面的评估。 3.1.2 基于RMSF的指标 这些指标用于评估模型对原子局部柔性的预测能力。 来源: 评估时使用的RMSF值,并非直接来自B-factor预测模块的输出。相反,它们是通过运行Boltz-2模型多次(例如100次)以生成一个包含100个样本的构象系综,然后基于这个预测的系综计算每个原子的RMSF值得到的。这个预测的RMSF随后与从真实MD轨迹计算出的RMSF进行比较。 指标 皮尔逊相关系数 (Pearson R) 和 斯皮尔曼等级相关系数 (Spearman ρ): 衡量预测RMSF与真实MD轨迹RMSF的相关性。 均方根误差 (RMSE): 衡量预测RMSF与真实值的绝对误差。 3.1.3 基于lDDT的系综评估指标 这些指标用于评估生成的整个构象系综的质量。 Precision lDDT (精确率): 衡量预测系综中每个构象的合理性。它计算预测系综中的每一个构象,与真实系综中与之最相似的构象之间的lDDT分数,然后取平均。高分意味着模型生成的构象都是“靠谱”的。 Recall lDDT (召回率): 衡量预测系综是否充分覆盖了真实系综的多样性。其计算方式为:对于真实MD系综中的每一个构象,算法会在整个预测的构象系综中寻找一个与它最相似(即lDDT分数最高)的构象。这个最高的lDDT分数被记录下来。最后,将所有真实构象找到的“最佳匹配”分数进行平均,得到最终的Recall lDDT。高分意味着真实世界中可能出现的各种重要构象,都被模型成功地预测出来了。 Diversity lDDT (多样性): 衡量预测系综内部构象之间的差异程度,计算为任意两个预测构象间1-lDDT的平均值。高分表示模型生成了一个多样化的构象集合。 3.2 在mdCATH和ATLAS基准上的实证结果 Boltz-2与Boltz-1以及专门的动态预测模型(AlphaFlow, BioEmu)在mdCATH和ATLAS测试集上进行了正面比较。 mdCATH测试集性能对比 指标 (Metric) Boltz-2-Xray Boltz-2-MD Boltz-1 AlphaFlow BioEmu ↑ 全局RMSF r 0.48 0.67 0.46 0.24 0.53 ↑ 靶点平均RMSF r 0.72 0.79 0.70 0.77 0.77 ↑ 全局RMSF ρ 0.61 0.65 0.52 0.45 0.44 ↑ 靶点平均RMSF ρ 0.78 0.81 0.76 0.76 0.78 ↓ 全局RMSF RMSE (Å) 192 157 197 229 212 ↓ 靶点平均RMSF RMSE (Å) 21.71 16.30 22.92 18.74 14.85 ATLAS测试集性能对比 (AlphaFlow因训练集重叠未参与此项评估) 指标 (Metric) Boltz-2-Xray Boltz-2-MD Boltz-1 BioEmu ↑ 全局RMSF r 0.57 0.65 0.38 0.56 ↑ 靶点平均RMSF r 0.76 0.85 0.77 0.83 ↑ 全局RMSF ρ 0.63 0.76 0.67 0.63 ↑ 靶点平均RMSF ρ 0.82 0.87 0.83 0.81 ↓ 全局RMSF RMSE (Å) 185 155 218 209 ↓ 靶点平均RMSF RMSE (Å) 17.42 12.35 19.62 15.04 关键结论: 方法条件化有效性: Boltz-2-MD(使用MD条件)在几乎所有RMSF相关性指标上都显著优于 Boltz-2-Xray(使用X射线条件),证明模型确实学会了根据用户指令生成特定风格的动态结构。 性能领先: Boltz-2-MD在RMSF的预测准确性上全面超越了其前代产品Boltz-1以及专门的动态预测模型AlphaFlow和BioEmu,展现了作为通用基础模型在细分领域的顶尖实力。 精确率与多样性的平衡: Boltz-2在保持高精确率(Precision)的同时,能够生成比Boltz-1更多样化的构象(更高的Diversity),并在召回率(Recall)上表现更优,体现了在生成合理构象和探索构象空间多样性之间取得了更好的平衡。 Figure 11: Global RMSF Spearman, Pearson and MSE metrics for the mdCATH (top) and ATLAS (bottom) holdout sets. 附:如何正确解读Figure 11的散点图 理想情况下,一个完美的预测模型应使图中所有数据点精确地落在y=x的对角线上,即预测值等于真实值。然而,在蛋白质动态学这一复杂问题中,观测到的散点分布是符合预期的,并且蕴含了丰富的信息。 我们应从以下几个角度解读此类图表: 问题的内在复杂性: “基准真相”(Ground Truth)的RMSF值本身是从随机性(stochastic)的分子动力学模拟中计算得到的统计平均值,并非一个确定性的、无噪声的真理。AI模型试图从静态信息中预测这一高度复杂的动态属性,其预测结果存在偏差是不可避免的。 评估的核心在于相关性与相对性能: 这些图表的首要价值在于展示了预测值与真实值之间显著的正相关性(由较高的Pearson R和Spearman ρ系数所量化)。这证明模型成功学习到了正确的物理趋势:即刚性区域被预测为刚性,柔性区域被预测为柔性。其次,通过横向比较不同模型(如Boltz-2-MD vs. Boltz-1)的散点图紧密程度、相关系数和误差(MSE),可以清晰地评估出模型的相对性能优劣。 数据分布的生物学意义: 图中数据点在低RMSF区域密集,在高RMSF区域稀疏,这反映了蛋白质的固有特性——大部分原子位于稳定的核心结构域(刚性),而少数原子位于高度灵活的环区或末端。模型在高RMSF区域的更大离散度,也恰恰说明了精确预测这些高度柔性区域是当前面临的主要挑战。 因此,尽管Figure 11并未呈现完美的对角线,但它通过展示强相关性和不同模型间的性能差异,有力地证明了Boltz-2在捕捉和预测复杂生物分子动态学方面取得了实质性的、可量化的进展。 4. 总结与展望 通过对大规模MD和NMR系综数据的创新性整合与监督,Boltz-2成功地将AI结构建模从静态领域推向了动态领域。它不仅能预测蛋白质的平均结构,更能捕捉其原子级的柔性和整体的构象多样性,其综合性能在多个关键指标上达到了与专门化工具相媲美甚至超越的水平。 尽管模型在动态建模方面仍有提升空间(例如,MD数据在训练后期才引入,架构有待进一步优化),但Boltz-2无疑为AI驱动的动态生物学研究奠定了坚实的基础,并指明了未来的发展方向。理解并预测分子的“舞姿”,将是揭示生命奥秘、设计下一代智能药物的关键所在。
Machine Learning & AI
· 2025-10-08
MIT发布Boltz-2:AI预测结合亲和力首次媲美FEP,千倍加速药物发现
重磅!MIT发布Boltz-2:AI预测结合亲和力首次媲美FEP,千倍加速药物发现 原标题:Boltz-2: Towards Accurate and Efficient Binding Affinity Prediction 链接:http://jeremywohlwend.com/assets/boltz2.pdf 生物分子相互作用的精确建模是现代生物学的核心挑战。近年来,以AlphaFold3 和Boltz-1 为代表的AI模型在生物分子复合物的结构预测方面取得了革命性突破。然而,结合亲和力——这一衡量分子功能和药物疗效的关键性质——的预测仍然是该领域一块难啃的硬骨头。 今天,我们为您深度解读来自MIT CSAIL、Jameel Clinic以及Valence Labs等机构的最新成果——Boltz-2。这不仅是一个结构预测模型,更是一个在结构与亲和力预测两大战场上均取得卓越表现的全新基础模型。 Boltz-2的核心突破在于,它是首个在小分子-蛋白质结合亲和力估算方面,性能媲美领域“金标准”——自由能微扰(FEP)方法的AI模型,同时计算效率提升了至少1000倍! 此外,Boltz-2还引入了多项创新的可控性功能,并与分子生成模型相结合,展示了发现多样化、可合成、高亲和力苗头化合物的有效工作流程。为了推动整个领域的创新,团队已将Boltz-2的模型权重、推理和训练代码在许可协议下完全开源。 下面,让我们一同深入探索Boltz-2的技术细节、惊人性能和深远影响。 1 | 引言:为何Boltz-2如此重要? 生物体内的复杂生命过程由蛋白质、DNA、RNA和小分子等生物分子间的相互作用所主导。精确阐明这些相互作用是理解生命、对抗疾病的基石。Boltz-2正是在这一背景下诞生的新型基础模型,它继承并发展了AlphaFold3和Boltz-1的衣钵,不仅提升了跨模态的结构预测准确性,还将预测能力从静态复合物扩展到了动态系综,并在物理真实性上设立了新标准。 然而,Boltz-2最与众不同的标志性特征,是其强大的结合亲和力预测能力。结合亲和力衡量小分子(药物)与蛋白质靶点结合的紧密程度,它直接关系到药物是否能作用于预期靶点,以及药效是否足够强大以产生治疗效果。尽管其在药物设计中至关重要,但计算机辅助的亲和力预测长期以来都是一个悬而未决的挑战。 此前,该领域的玩家面临着一个两难的性能/计算时间权衡: 高精度方法:以自由能微扰(FEP)为代表的原子模拟方法最为精确,但其计算成本极高、速度极慢,无法用于大规模筛选。 快速方法:以分子对接(Docking)为代表的方法速度快,但其精度不足以提供可靠的信号。 迄今为止,没有任何一个AI模型能够在结合亲和力预测的准确性上与FEP方法或实验室检测相提并论。 Boltz-2的出现,正是为了打破这一僵局。它的成功建立在数据管理和表示学习两大基石之上。通过标准化数百万个生化实验数据,并从这些含噪数据中提取有效信号,Boltz-2解决了训练数据这一核心障碍。同时,其亲和力预测能力根植于驱动共折叠过程的强大潜空间表示,这意味着结构建模的进步直接推动了亲和力预测的飞跃。 2 | 数据:模型的基石 强大的基础模型离不开高质量、大规模的数据聚合与管理。Boltz-2的训练数据主要分为两类:结构数据和结合亲和力数据。 2.1 结构数据:从静态到动态,从真实到蒸馏 与Boltz-1相比,Boltz-2在结构数据的多样性和来源上进行了大幅扩展。 拥抱动态系综:Boltz-1主要基于PDB数据库中每个系统的单一静态结构进行训练。而Boltz-2的一大进步是引入了系综(ensembles)的概念,即一个分子并非只有一种构象。这些系综数据同时来自: 实验技术:如核磁共振(NMR)等多构象实验数据。 计算模拟:如来自MISATO、ATLAS和md-CATH等大型公开项目的分子动力学(MD)模拟轨迹。 这样做目标是让Boltz-2不仅能学习晶体结构所代表的单一平衡点,还能理解分子的局部波动和全局结构变化,从而更好地捕捉蛋白质动态学。 进一步解释:MD数据集细节 MISATO:包含在300K温度下进行8纳秒(ns)NVT系综模拟的轨迹。该数据集主要关注蛋白质-配体复合物,并移除了配体漂移过远(>12Å)的轨迹。 ATLAS:包含在300K温度下进行100纳秒(ns)NPT系综模拟的轨迹。Boltz-2从中采样最后10纳秒的构象用于训练,以捕捉更接近平衡态的动态行为。 mdCATH:包含在320K温度下进行NVT系综模拟的轨迹,模拟时间最长可达500纳秒。Boltz-2使用轨迹的最后10%进行训练。 通过整合这些长时程、大规模的MD数据,Boltz-2得以学习到比静态晶体结构丰富得多的构象信息。 引入B-factor监督:为了进一步增强模型对局部动力学的理解,Boltz-2的Trunk模块末端的单一表示被监督用于预测来自实验和MD轨迹的B-factor(温度因子,反映原子位置的不确定性或柔性)。 进一步解释:B-factor监督的作用 B-factor是晶体学中用来描述原子柔性的一个参数,值越高代表原子位置越不确定、越灵活。在MD模拟中,可以通过原子的均方根涨落(RMSF)计算得到类似的量。通过让模型直接预测B-factor,其最终作用是强制模型不仅学习原子的平均位置(三维结构),还要学习每个原子的“动态个性”或“活动范围”。这使得模型对蛋白质的柔性区域(如loop区)和刚性区域(如α-螺旋或β-折叠的核心)有更深刻的理解,从而生成更符合真实动态特性的结构。 大规模蒸馏数据:为了增加训练数据的规模和多样性,Boltz-2广泛采用了蒸馏(distillation)技术。 通俗解释:什么是蒸馏? 想象一下,我们有一位非常厉害的“老师傅”(一个已经很强大的模型,如AlphaFold2或Boltz-1)。我们让这位“老师傅”对大量它没见过但我们认为有价值的“原材料”(如蛋白质或RNA序列)进行预测,并筛选出那些它非常有信心的“作品”(高置信度的预测结构)。然后,我们把这些高质量的“作品”当作新的、可靠的训练数据,用来教“学徒”(即正在训练的Boltz-2)。通过这种方式,我们可以极大地扩充训练集,让模型见到更多样化的例子,尤其是在实验数据稀疏的领域。 Boltz-2的蒸馏数据包括: AlphaFold2预测的单链蛋白质结构。 Boltz-1预测的多种复合物结构,涵盖单链RNA、蛋白质-DNA、配体-蛋白质、MHC-多肽以及MHC-多肽-TCR等多种相互作用类型。 2.2 结合亲和力数据:在噪声中淘金 尽管PubChem、ChEMBL等公共数据库中存在数以百万计的结合亲和力数据点,但由于实验方案的差异和噪声,将它们整合成一个可用的训练集是出了名的困难。Boltz-2团队为此设计了一套精细的数据管理策略。 进一步解释:“在噪声中淘金”的具体策略 “淘金”的过程旨在从海量的、良莠不齐的公开数据中筛选出最可靠、信息量最大的部分。具体策略包括: 来源筛选:优先选择如ChEMBL和BindingDB中手动策展、可信度高的数据。对于PubChem中的数据,严格筛选实验类型(如限定为生化或功能性实验)和置信度等级。 数据一致性处理:将所有不同类型的亲和力测量值(如Ki,Kd,IC50等)统一转换为log10尺度,并以μM为标准单位,便于模型学习。 噪声实验剔除:移除那些数据点过少、活性值过于集中(标准差过低,无法提供活性差异信息)或化学多样性过低的实验(例如,只测试了一系列非常相似的化合物),因为这些数据可能无法帮助模型学习普适的规律。 标签可靠性增强:对于来自高通量筛选(HTS)的二元标签(结合/不结合),这是一个噪声重灾区。团队通过交叉验证的方式,要求一个“结合”的标签必须在独立的定量实验中得到确认,从而过滤掉大量假阳性。 负样本扩充:通过“合成诱饵分子”策略,为每个已知的结合物匹配一个结构相似度低但来自相似靶点筛选的“不结合”分子,这极大地丰富了负样本空间,帮助模型更好地区分结合物与非结合物。 通过这一系列精细的操作,Boltz-2得以在一个相对“干净”且信息丰富的数据集上进行训练,这是其成功的关键前提。 2.2.1 满足不同需求的混合数据集 药物发现的不同阶段对亲和力数据的要求不同: 苗头化合物发现(Hit Discovery):需要大规模、二元标签(结合/不结合)的数据来从大型化合物库中识别出可能的结合物。 苗头到先导/先导优化(Hit-to-lead/Lead Optimization):需要精确的、连续值的亲和力测量数据(如Ki,Kd,IC50)来区分活性上的细微差异,以指导化合物的精修。 为了同时支持这两种场景,Boltz-2构建了一个包含二元标签和连续值标签的混合数据集。下表(原Tab. 1)总结了亲和力训练数据集的统计信息: 来源 (Source) 类型 (Type) 监督类型 (Supervision) #结合物 (#Binders) #诱饵 (#Decoys) #靶点 (#Targets) #化合物 (# Compounds) ChEMBL and BindingDB optimization values 1.2M (1.45M) 0 2k (2.5k) 600k (700k) PubChem small assays hit-discovery both 10k (13k) 50k (70k) 250 (300) 20k (25k) PubChem HTS hit-discovery binary 200k (400k) 1.8M (3.5M) 300 (500) 400k (450k) CeMM Fragments hit-discovery binary 25k (45k) 115k (200k) 1.3k (2.5k) 400 (400) MIDAS Metabolites hit-discovery binary 2k (3.5k) 20k (35k) 60 (100) 400 (400) ChEMBL and BindingDB synthetic decoys binary 0 1.2M (1.45M) 2k (2.5k) 600k (700k) 表注:括号中的数值表示在应用结构质量过滤器(ipTM < 0.75)之前的统计数据。 3 | 架构:Boltz-2的心脏 Boltz-2的架构如图2所示,由四个主要模块构成:Trunk(主干)、Denoising Module(去噪模块)、Confidence Module(置信度模块)和Affinity Module(亲和力模块)。下面将重点介绍其与Boltz-1相比的主要区别,特别是可控性组件和亲和力模块。 3.1 Trunk模块:强大的特征提取器 通俗解释:Trunk模块是做什么的? Trunk模块可以看作是Boltz-2的“大脑”和“感官系统”。它负责接收所有输入信息——包括蛋白质和配体的序列、多序列比对(MSA)信息、结构模板等等——然后通过一系列复杂的计算(主要是PairFormer堆栈和三角注意力运算),将这些原始信息加工成一个高度浓缩、信息丰富的内部表示。这个内部表示就像是模型对整个生物分子复合物的“深刻理解”,后续的所有预测(结构、置信度、亲和力)都将基于这个表示来进行。 进一步解释:PairFormer和三角注意力 PairFormer:是Transformer架构的一种变体,专门用于处理成对(pairwise)的信息。在Boltz-2中,它处理的是任意两个氨基酸/核苷酸/原子之间的关系信息,比如它们的距离、相对朝向等。 三角注意力 (Triangle Attention):这是AlphaFold系列模型中的一个核心创新。传统的注意力机制只考虑A和B之间的关系,而三角注意力则引入了第三方C,形成一个“三角关系”。它会同时更新A-B之间的关系信息,利用A-C和B-C的关系信息。这种机制使得模型能够更好地推断和强制执行三维空间中的几何约束(比如,如果A离C近,B也离C近,那么A和B之间的距离就不可能太远),这对于精确预测3D结构至关重要。 通过多层PairFormer和三角注意力的堆叠,Trunk模块能够反复推理和精炼分子间的空间和序列关系,最终输出一个极其强大的内部表示。 Boltz-2对Trunk模块进行了显著的性能优化,通过使用混合精度(bfloat16)和trifast内核进行三角注意力计算,大大提升了训练和推理的速度及内存效率。这使得训练时的裁剪尺寸(crop size)可以扩大到768个tokens,与AlphaFold3保持一致,从而能处理更大的复合物。 3.2 Denoising模块与Boltz-steering:从生成到精炼 通俗解释:Denoising模块和Boltz-steering如何工作? Denoising模块是扩散模型的核心“生成器”。它接收来自Trunk模块的内部表示和随机噪声作为输入,然后像一位雕塑家一样,一步步地从随机的“石块”中“雕刻”出分子的三维结构。 然而,AI“雕塑家”有时会犯一些不符合物理常识的错误,比如让两个原子“撞”在一起(空间位阻冲突)或者化学键不合理。这时就需要Boltz-steering出场了。 Boltz-steering是一种在推理阶段(即生成新结构时)应用的“物理校正”技术。它就像给雕塑家手上加了一个“力反馈”装置,当他要做出一个不合理的雕刻时(如原子碰撞),这个装置就会施加一个反向的“力”,引导他做出更符合物理现实的调整。Boltz-2集成了这种方法(形成Boltz-2x版本),可以在不牺牲准确性的前提下,显著提高生成结构的物理合理性。 3.3 可控性:让用户成为“导演” 许多Boltz-1用户希望能更精确地控制模型的预测,以检验科学假设或整合先验知识。为此,Boltz-2引入了三个全新的可控性组件。 方法条件化 (Method conditioning) 通俗解释:这允许用户告诉模型:“请你像一位X射线晶体学家那样思考,给我一个类似晶体结构的结果”,或者“请你模拟分子动力学的过程,展示一个动态系综”。模型在训练时学习了不同实验方法(X射线、NMR、MD等)产生的数据的细微差别,因此可以在预测时对齐到指定的方法类型。 模板条件化与引导 (Template conditioning and steering) 通俗解释:这允许用户给模型提供一个相关的复合物结构作为“蓝图”或“参考模板”。与之前的方法不同,Boltz-2不仅支持多聚体模板(而不仅仅是单链),还允许用户选择: 软条件化:让模型“参考”一下模板,但不强制。 硬引导(Steering):通过Boltz-steering势能,强制模型严格遵循模板的结构。 进一步解释:软条件化与硬引导的定量区别 论文本身没有提供一个直接的指标来定量比较这两者的差异,但我们可以从其机制上理解其定量效果: 软条件化是通过特征输入将模板信息提供给模型,模型在做决策时会“看到”这些信息。但它不提供任何保证。模型完全可以根据其他信息(如MSA)选择性地忽略模板,最终生成的结构与模板的RMSD可能是任何值。 硬引导是通过一个惩罚势能来实现的。例如,可以定义一个势能函数Etemplate=∑i∈templatemax(RMSD(xi,xiref)−αcutoff,0)。这个函数的意思是,如果预测的模板区域原子坐标xi与参考模板坐标xiref的RMSD超过了一个预设的阈值αcutoff(比如1Å),就会产生一个惩罚项。在生成过程中,模型会努力最小化这个惩罚,从而保证最终模板区域的RMSD会严格控制在αcutoff以内。这是一个确定性的、可量化的约束。 接触与口袋条件化 (Contact and pocket conditioning) 通俗解释:这允许用户直接指定结构上的约束,就像在地图上画线一样。用户可以指定“A残基和B残基必须相互接触”,或者“这个配体必须绑定到这个口袋里”。同样,这些约束也可以通过steering被强制执行。 3.4 Affinity模块:亲和力的最终审判 通俗解释:Affinity模块是做什么的? Affinity模块是Boltz-2实现亲和力预测的核心。它接收由Denoising模块生成的、经过物理校正的3D结构以及Trunk模块提供的丰富表示,然后进行最后的“审判”,并输出两个关键结果: 结合可能性 (Binding Likelihood):一个概率值,回答“这个小分子是否会与蛋白质结合?”。 亲和力值 (Affinity Value):一个连续的数值,回答“如果结合,结合得有多紧密?”。这个值可以近似理解为一个类似IC50的度量。 该模块的核心是一个PairFormer模型,它专门关注蛋白质-配体界面以及配体内部的相互作用,而忽略了蛋白质内部的相互作用,从而能更高效地聚焦于结合事件本身。这些相互作用信息被聚合起来,最终通过两个独立的预测头输出上述的结合可能性和亲和力值。 4 | 训练:如何铸就强大的Boltz-2 Boltz-2的训练过程分为三个主要阶段:结构训练、置信度训练和亲和力训练。 4.1 结构和置信度训练 这部分的训练过程大体上遵循Boltz-1,但有几个关键的改进: 计算优化:允许模型使用更大的裁剪尺寸和更多的迭代次数进行训练。 系综监督:对于来自实验或MD的系综数据,通过聚合所有构象的距离图(distogram)来进行监督,以减少方差。 B-factor监督:如前所述,Trunk的最终表示被额外监督用于预测每个token的B-factor。 进一步解释:MD数据在训练中的具体作用 MD数据主要通过两种方式在结构训练中发挥作用: 监督距离图(Distogram Supervision):对于一个MD轨迹产生的构象系综(例如100个构象),模型不是预测其中某一个构象的距离图,而是预测这100个构象距离图的聚合结果(例如,平均距离图)。损失函数(如交叉熵)会计算模型预测的距离图与这个聚合目标之间的差异。这种方式让模型学习到一个代表系综平均特征的、更鲁棒的距离表示,而不是过拟合到某个瞬时构象。 监督坐标去噪(Coordinate Denoising Supervision):在每个训练迭代中,会从MD系综中随机采样一个构象。这个被采样的构象会被用于标准的扩散模型坐标加噪和去噪的监督过程。这意味着模型在训练时会见到来自MD轨迹的大量不同构象,从而学习到蛋白质的柔性和构象多样性。 总结来说,MD数据没有引入新的损失项,而是改变了现有损失项(距离图损失和坐标去噪损失)的监督目标,让模型从学习单一静态结构转变为学习动态的构象系综。 4.2 亲和力训练 亲和力训练在结构和置信度训练之后进行,并且训练时梯度不会反向传播到Trunk模块,以保护其学到的强大结构表示。 进一步解释:亲和力训练的输入 亲和力模块的输入主要来自已经训练好的Trunk模块。具体来说,其输入是: Trunk模块的最终成对表示(final pair representation):这是Trunk模块经过多层计算后输出的、蕴含丰富结构和序列信息的二维特征图。 预测的原子坐标:由Denoising模块生成的、最可信的3D结构坐标。 换言之,亲和力模块是在一个高质量的、由模型自身预测的3D结构基础上,利用Trunk模块学到的深层内部表示(representation)来进行预测的。它不需要原始的序列或MSA信息,因为这些信息已经被Trunk模块“编码”进了它的输入表示中。 其训练流程包含多个精心设计的组件: 口袋预计算和裁剪:为了聚焦于最相关的相互作用并提高效率,训练流程首先对结合口袋进行预计算和裁剪。 自定义采样策略:设计了一种特殊的采样器,它能够平衡结合物和诱饵分子的比例,并优先考虑那些信息量大、反差高(即活性差异显著)的实验数据,以鼓励模型学习“活性悬崖”(activity cliffs)——即微小结构变化导致巨大活性差异的现象。 鲁棒的损失函数 : 二元分类任务(结合/不结合):使用Focal Loss来解决类别不平衡问题(诱饵分子远多于结合物)。 连续值回归任务 (亲和力大小): 使用Huber Loss,这是一种对噪声数据更鲁棒的损失函数。 创新性地同时监督绝对亲和力值和同批次内成对的亲和力差异,并给予后者更高的权重。监督差异值可以有效抵消不同实验条件(如底物浓度)带来的系统性偏差。 4.3 与分子生成器结合的训练 Boltz-2不仅能预测,还能指导新分子的生成。在评估中,Boltz-2被用作一个打分函数(或奖励函数)来训练一个名为SynFlowNet的分子生成器。 进一步解释:SynFlowNet的具体架构 SynFlowNet是一个基于GFlowNet的、旨在生成可合成分子的模型。其架构和工作流程如下: 核心思想:它将分子生成过程看作一个序列化的决策过程(马尔可夫决策过程,MDP)。每一步,模型都会从一个包含反应类型和化学砌块(building blocks)的动作空间中选择一个动作,来逐步构建最终的分子。 输入:模型的输入是当前正在构建的部分分子的图表示。 架构: 前向策略网络 (PF):这是模型的核心,通常采用图注意力网络(Graph Transformer)。它接收部分分子的图表示,输出在当前状态下选择每个可能动作(添加某个砌块或执行某个反应)的概率。 后向策略网络 (PB):用于估计从一个完整分子逆向拆解回起始状态的概率。在SynFlowNet中,为了简化,它被设置为一个均匀分布。 输出:最终输出的是一个完整的、可以通过预定义反应路径合成的分子。 训练:它使用一种名为轨迹平衡损失(Trajectory Balance Loss)的特殊损失函数进行训练,这个损失函数会利用Boltz-2提供的奖励分数来调整前向策略网络,使其更倾向于生成高奖励(高亲和力)的分子。 5 | 性能评估:Boltz-2的实力检验 本节将详细介绍Boltz-2在多个维度上的惊人表现,包括结构预测、蛋白质动力学捕捉、结合亲和力预测和虚拟筛选。 5.1 结构预测性能:超越前代,缩小差距 PDB通用评估集:在一个包含2024年和2025年发布的、与训练集显著不同的新结构测试集上,Boltz-2的性能与Boltz-1相当或略有提升。尤其是在RNA链和DNA-蛋白质复合物这些模态上,提升最为显著,这表明大规模蒸馏数据策略对提升模型性能至关重要。与其他模型相比,Boltz-2性能具有竞争力,略优于Chai-1和ProteinX,但稍逊于AlphaFold3。 抗体基准测试:在具有挑战性的抗体-抗原结构预测上,Boltz-2相比Boltz-1有中等程度的提升,进一步缩小了开源模型与专有模型(如AlphaFold3)之间的差距。 Polaris-ASAP挑战赛:这是一个针对新冠(SARS-CoV-2)和中东呼吸综合征(MERS-CoV)主蛋白酶配体姿态预测的竞赛。值得注意的是,Boltz-2无需任何微调或额外的物理弛豫,其开箱即用的性能就与竞赛前5名的顶尖选手相当,而这些选手大多使用了微调过的Boltz-1或AlphaFold3模型。 5.2 蛋白质动力学捕捉:更精准的动态视图 通过在分子动力学(MD)数据集(mdCATH和ATLAS)的留出簇上进行评估,结果显示: MD方法条件化确实有效,能引导模型生成更多样化的结构,从而更好地捕捉模拟中的构象多样性。 在使用MD条件化时,Boltz-2在多个指标上与专门用于此任务的模型(如BioEmu和AlphaFlow)具有竞争力。 在衡量局部柔性的RMSF指标上,Boltz-2生成的MD系综与真实MD轨迹的相关性更强,误差更低,优于Boltz-1、BioEmu和AlphaFlow。 进一步解释:除了RMSF还有哪些动力学指标? 论文中还使用了基于lDDT(local Distance Difference Test)的指标来评估动态系综的质量: Precision lDDT:衡量预测的每个构象与真实MD系综中最接近的构象之间的相似度。高分表示预测的构象都是合理的。 Recall lDDT:衡量真实MD系综中的每个构象是否都能在预测的系综中找到一个与之相似的构象。高分表示模型捕捉到了真实构象的多样性。 Diversity lDDT:衡量预测系综内部构象之间的平均不相似度(1-lDDT)。高分表示模型生成了多样化的构象,而不是单一的、重复的结构。 5.3 关键突破:结合亲和力预测性能媲美FEP 这是Boltz-2最令人瞩目的成就。评估在多个行业公认的、用于“苗头到先导”和“先导优化”的基准数据集上进行。 5.3.1 表现 进一步解释:“金标准”FEP及其细节 FEP (Free Energy Perturbation):自由能微扰是一种基于统计力学和分子动力学模拟的、计算精确的相对结合自由能(ΔΔG)的方法。它通过在一个“非物理”的路径上,将一个配体A逐渐“突变”成另一个配体B,并计算这个过程中的自由能变化,从而得到两者结合能的差异。因其严格的物理基础,被认为是计算化学领域的“金标准”之一。 FEP+:在本文中,FEP+特指一个高质量的基准数据集,也代指一种经过专家手动优化的FEP计算流程。这种流程中,研究人员会根据具体体系和实验结果,反复调整模拟的参数(如力场、输入结构准备、微扰路径等),以达到与实验结果的最大吻合度。因此,它代表了当前(商业)FEP模拟所能达到的最高准确性上限。 OpenFE:与FEP+相对,OpenFE是一个开源的、采用自动化、固定流程的相对FEP方法。它的结果更能代表在没有专家干预的情况下,自动化FEP流程的普遍性能。 力场和模拟细节:虽然论文没有详述FEP基线的具体参数,但这类计算通常使用标准的生物分子力场(如AMBER, CHARMM, OPLS)和成熟的MD模拟软件包(如AMBER, GROMACS, NAMD)来进行。 FEP+基准测试: 4-靶点子集:在这个子集上,有多种物理方法的基准可供比较。Boltz-2取得了0.66的平均皮尔逊相关系数(Pearson R),超越了所有廉价的物理方法(如MM/PBSA)和机器学习基线。 与FEP的直接对话:最引人注目的是,Boltz-2的性能已经接近了领域“金标准”——FEP和ABFE(绝对结合自由能)模拟,而其计算速度快了超过1000倍!。这在图1的精度-速度Pareto前沿图上得到了清晰的展示。 完整OpenFE子集:在包含876个复合物的更大规模OpenFE子集上,Boltz-2的性能同样接近了广泛使用的开源相对FEP方法OpenFE。 CASP16亲和力挑战赛:这是一个严格的盲测基准。竞赛参与者有数周时间,并可使用各种定制化的机器学习和物理工具。然而,Boltz-2在没有任何微调或输入管理的情况下,其性能也明显优于所有排名靠前的参赛者。 5.3.2 模型泛化能力与数据泄漏检验 一个常见的担忧是,AI模型的高性能是否仅仅因为它“记住”了训练集中相似的分子?附录中的图10有力地回应了这一质疑。该图分析了FEP+基准测试中,测试化合物与训练集化合物的最大Tanimoto相似度(一种衡量分子结构相似性的指标)和模型预测性能之间的关系。 结论是:模型的预测性能与化合物的相似度之间没有显著的相关性。 无论测试化合物与训练集中的分子是远亲还是近邻,模型的表现都相对稳定。这强有力地证明了Boltz-2并非简单地“记忆”数据,而是学习到了更普适的、能够泛化到新化学空间的物理和化学规律。 5.3.3 性能的异质性:并非所有靶点都同样出色 附录中的图12和图14展示了Boltz-2在公共验证集和私有工业界数据集上,针对每一个具体实验(assay)的性能散点图。这些图揭示了一个重要且真实的结论:Boltz-2的性能在不同靶点和实验之间存在显著的异质性。 可以看到,在某些靶点上(如某些激酶),模型的预测值与实验值高度相关(皮尔逊相关系数达0.5+)。然而,在另一些靶点上(如某些GPCR),相关性则要低得多。 这种性能的异质性是符合预期的,也与FEP等物理方法的表现类似。它提醒我们,尽管整体性能强大,但在应用于具体的药物研发项目时,仍需评估模型在特定靶点家族或化学空间中的适用性。这也是未来模型迭代和优化的重要方向。 真实的工业界挑战:团队还在8个来自Recursion的、代表复杂真实世界药物化学项目的内部盲测数据集上评估了Boltz-2。结果显示,Boltz-2依然大幅超越其他机器学习基线,并在8个项目中的3个上取得了大于0.55的皮尔逊相关性。但同时,在另外5个项目上性能有限,这也提醒我们,公共基准上的强大性能并不总能直接转化为在所有真实世界复杂问题上的成功,这与FEP方法在某些蛋白类别(如GPCR)上也表现不佳的情况类似。 5.4 虚拟筛选:大规模、高精度的苗头发现 进一步解释:什么是富集因子? 富集因子(Enrichment Factor, EF)是评估虚拟筛选性能的一个常用指标。它衡量的是,在筛选出的化合物排名最靠前的某个百分比(例如前1%)中,真实活性化合物的比例相对于在整个数据库中随机抽样的期望比例高了多少倍。例如,如果一个数据库中有1%的活性分子,而你的方法筛选出的排名前1%的分子中有10%是活性分子,那么富集因子EF(1%)就是10%/1% = 10。富集因子越高,说明模型将真实活性分子“富集”到列表顶部的能力越强,这对于实验验证来说至关重要,因为它意味着可以用更少的实验成本找到更多的苗头化合物。 回顾性虚拟筛选:在MF-PCBA数据集(包含多种蛋白家族的高质量生化实验数据)上,Boltz-2展示了强大的苗头化合物发现能力。与之前的机器学习方法、ipTM置信度分数和分子对接相比,Boltz-2几乎将平均精度(Average Precision)翻了一番,并在0.5%的阈值下实现了18.4的富集因子。 前瞻性虚拟筛选:为了在更真实的场景中验证Boltz-2,团队进行了一项针对激酶靶点TYK2的前瞻性虚拟筛选。 筛选策略:团队不仅筛选了商业化合物库(Enamine的HLL和Kinase库),还利用了前述的Boltz-2 + SynFlowNet的生成式筛选流程,探索了Enamine的760亿规模的REAL Space可合成化合物空间。 验证方法:由于没有实验数据,团队使用了他们新近开发的高精度绝对FEP流程Boltz-ABFE来验证筛选出的化合物的亲和力。 进一步解释:Boltz-ABFE是什么方法? Boltz-ABFE是团队新近开发的一种绝对结合自由能(Absolute Binding Free Energy)计算流程。与计算相对结合能的FEP不同,ABFE旨在直接计算一个配体与受体结合过程的自由能变(ΔG),理论上更具挑战性。Boltz-ABFE的创新之处在于,它将AI与物理模拟相结合:它首先使用Boltz-2来预测蛋白质-配体复合物的3D结构,省去了需要实验晶体结构的昂贵步骤,然后将这个AI预测的结构作为输入,运行后续的绝对自由能物理模拟。这是一个端到端的、无需实验结构的ABFE估算流程。 筛选结果: Boltz-2成功地从商业库中优先筛选出了高亲和力的配体。 生成式筛选流程表现更佳:SynFlowNet生成的所有10个最终候选分子都被Boltz-ABFE预测为能够与TYK2结合,且平均亲和力高于固定库筛选出的分子,同时所需的计算预算远低于对整个HLL库的筛选。 新颖性分析:通过与PDB中已知的TYK2抑制剂进行Tanimoto相似性比较,发现SynFlowNet生成的化合物具有显著的新颖性,与已知结合物的最大骨架相似度仅为0.396。 前瞻性筛选的结果令人振奋,尤其是生成式筛选流程。附录中的图20-23详细展示了这一流程的成果。 更高的亲和力:SynFlowNet生成的10个最终候选分子,经Boltz-ABFE验证,不仅全部被预测为结合物,而且其平均结合自由能比从固定商业库(HLL和Kinase库)中筛选出的最佳分子还要好(见图8)。 惊人的新颖性:这真的是AI的创造力吗?附录图22的相似性矩阵和图23的分子对比较给出了肯定的答案。 分析显示,SynFlowNet生成的化合物与PDB中所有已知的TYK2抑制剂相比,具有显著的化学新颖性(最大骨架Tanimoto相似度仅为0.396)。有趣的是,模型自主地“发现”并利用了吡咯并嘧啶(pyrrolopyrimidine)这类经典的激酶铰链区结合基序(hinge-binding motif),但同时将这一基序嫁接到了全新的、多样的化学骨架上。这表明Boltz-2不仅是在模仿,更是在进行有意义的、基于化学原理的创新组合。 6 | 局限性 尽管Boltz-2取得了巨大成功,但作者也坦诚地指出了模型目前存在的局限性,并计划在未来工作中加以解决: 分子动力学模拟:尽管比Boltz-1有进步,但在MD相关任务上并未显著超越其他基线模型。这可能与MD数据集在训练后期才被引入以及模型架构未做大改有关。 结构预测挑战:模型在预测大型复合物的复杂相互作用,以及由结合诱导的大规模构象变化方面仍有不足。 亲和力预测的依赖性:亲和力模块的准确性高度依赖于上游预测出的3D结构的质量。如果口袋识别错误或界面重构不准,亲和力预测便不可靠。此外,模型目前未明确处理辅因子(如离子、水分子)的作用。 亲和力模块适用范围:模型在不同实验和靶点上的性能差异很大,需要进一步研究其性能波动的来源,是源于结构预测不准、对某些蛋白家族泛化不足,还是对分布外的化学空间不够鲁棒。 7 | 结论 Boltz-2作为一个全新的结构生物学基础模型,在结构和亲和力预测两个前沿领域都取得了重大进展。它以更强的物理合理性、更精细的可控性和对局部动力学的更深理解,扩展了其前代产品的共折叠能力。 最关键的是,Boltz-2是首个在FEP+基准上,结合亲和力预测准确性接近FEP方法的AI模型,同时提供了数量级的计算效率提升。无论是在回顾性还是前瞻性的评估中,Boltz-2都在药物发现的各个阶段(苗头发现、苗头到先导、先导优化)展现了强大性能。通过与生成模型结合,它更是构建了一个端到端的、经ABFE验证的从头药物设计框架。 尽管存在一些局限性,但Bol-2的开源发布无疑为整个社区提供了一个极其强大的新基石。 它不仅有望加速现有药物研发流程,更有可能催生全新的计算驱动的发现范式。未来的研究方向可能包括:整合更精细的物理模型、引入实验反馈的强化学习闭环、增强模型的可解释性以及更好地处理蛋白质的柔性等。 通过在许可协议下开源Boltz-2及其训练流程,该团队希望能为日益壮大的AI与分子科学交叉领域社区提供一个坚实的基础,共同推动药物发现、蛋白质设计和合成生物学的边界,拓展生物分子建模的计算可能性。 参考文献 (部分) Abramson, J., Adler, J., Dunger, J., et al. (2024). Accurate structure prediction of biomolecular interactions with alphafold 3. Nature. Wohlwend, J., Corso, G., Passaro, S., et al. (2025). Boltz-1 Democratizing Biomolecular Interaction Modeling. Ross, G. A., Lu, C., Scarabelli, G., et al. (2023). The maximal and current accuracy of rigorous protein-ligand binding free energy calculations. Communications Chemistry, 6. Wu, Z., Koenig, G., Boresch, S., & Cossins, B. (2025). Optimizing absolute binding free energy calculations for production usage. ChemRxiv preprint. Cretu, M., Harris, C., Igashov, I., et al. (2024). Synflownet: Design of diverse and novel molecules with synthesis constraints. arXiv preprint. Hahn, D. F., Bayly, C. I., Boby, M. L., et al. (2022). Best practices for constructing, preparing, and evaluating protein-ligand binding affinity benchmarks. Living journal of computational molecular science, 4. 更多参考文献请参考原论文 下一期我们将深入一些细节。
Machine Learning & AI
· 2025-10-08
贝叶斯优化与高斯过程:从黑箱优化到核技巧的完整解析
贝叶斯优化与高斯过程:从黑箱优化到核技巧的完整解析 引言:黑箱优化的挑战 想象你正在实验室里优化一个全新的化学反应,想找到能让产率最高的反应条件。影响产率的因素有很多:温度(T)、反应时间(t)、催化剂浓度(c)等等。 这个函数 yield = f(T, t, c, ...) 对你来说就是一个黑箱——你不知道它的具体数学形式,只知道每次设定一组输入条件后,经过数小时甚至数天的实验,才能得到一个输出结果。 核心问题:如何用最少的实验次数,智能地找到能让产率最高的最佳条件? 这就是贝叶斯优化(Bayesian Optimization)要解决的问题。它是一种迭代式的、非常”省钱”(节省实验次数)的优化策略,核心由两个组件构成: 代理模型(Surrogate Model):根据已有实验数据,构建对”黑箱”函数的近似模型。它不仅预测新条件下的产率,还量化预测的不确定性。最常用的代理模型就是高斯过程(Gaussian Process, GP)。 采集函数(Acquisition Function):基于代理模型的预测值和不确定性,决策下一个实验点的位置,平衡”探索”与”利用”。 第一部分:高斯过程——不局限于特定模型的代理模型 1.1 传统模型的局限 在传统机器学习中,我们通常先假设一个具体的模型形式,比如线性回归 $y = w_0 + w_1T + w_2t + …$,然后通过数据拟合参数 $w$: \[p(y | x, w)\] 问题:我们凭什么假设真实函数是线性的?它可能是二次的、指数的、或任何复杂形状。一旦模型假设错误,就永远找不到最优解。 高斯过程提出了一个颠覆性想法:能不能不局限于任何一个特定模型,而是考虑所有可能的模型? 这可以用一个积分公式表达——对于新输入 $x$,其输出 $y$ 的概率分布为: \[p(y | x, D) = \int p(y | x, w) \cdot p(w | D) \, dw\] 其中: $p(w D)$:在观测数据 $D$ 后,模型 $w$ 为真实模型的可能性(后验概率) $p(y x, w)$:如果 $w$ 是真实模型,它对新输入 $x$ 的预测概率 $\int … dw$:对所有可能模型加权平均 问题是,这个积分无法计算,因为”所有可能的模型”有无穷多个! 1.2 高斯过程的”魔法”:让不可能变为可能 高斯过程利用高斯分布的优美数学性质,让上述积分变得可计算。它需要两个关键假设: 假设1:观测噪音是高斯的 \[y = f(x) + \epsilon, \quad \epsilon \sim \mathcal{N}(0, \sigma^2_n)\] 这符合直觉——任何实验测量都存在随机误差。 假设2:函数的先验分布是高斯过程 这是最核心的假设。高斯过程是多元高斯分布向无穷维度的延伸: 多元高斯分布:描述有限个随机变量的联合概率 高斯过程:描述一个函数的概率分布 定义:函数 $f(x)$ 是高斯过程,如果在任意有限个输入点 ${x_1, x_2, …, x_n}$ 处,其函数值 ${f(x_1), f(x_2), …, f(x_n)}$ 的联合分布服从多元高斯分布。 一个高斯过程完全由两部分定义: 均值函数 $m(x)$:对函数值的”平均”预期(通常设为0) 协方差函数(核函数) $k(x, x’)$:定义任意两点函数值之间的相关性 常用的径向基函数(RBF)核为: \[k(x_i, x_j) = \sigma_f^2 \exp\left(-\frac{\|x_i - x_j\|^2}{2l^2}\right)\] 物理直觉: 两点很接近 → 核函数值很大 → 输出值高度相关 两点很远 → 核函数值趋近0 → 输出值基本无关 现在我们进一步探讨一个更深层的问题:为什么高斯过程能够拟合任意复杂的函数? 这就引出了GP最强大的特性——核技巧。 1.3 核函数的本质:隐式的无限维映射 这里我们深入探讨一个关键问题:高斯过程为什么能够拟合任意复杂的函数? 这种强大能力来自核技巧(Kernel Trick),这也是GP被称为”非参数模型”的原因。 核函数 $k(x_i, x_j)$ 等价于:先用映射 $\Phi$ 将输入转换到高维特征空间,再计算内积: \[k(x_i, x_j) = \Phi(x_i) \cdot \Phi(x_j)\] 关键洞察:回顾GP的预测公式,映射后的特征向量 $\Phi(x)$ 从未独立出现过!所有计算只依赖于成对点之间的内积结果 $\Phi(x_i) \cdot \Phi(x_j)$。 这就是”技巧”所在: 我们想在高维空间计算(表达能力强) 但不想真的映射到高维(计算成本高) 核函数提供”后门”:直接在原始空间计算,得到高维空间的内积结果 比喻: 高维映射 $\Phi(x)$:为一本书创建包含无穷多项的”特征清单” 内积 $\Phi(x_i) \cdot \Phi(x_j)$:逐项对比两本书的无穷清单(不可能完成) 核函数 $k(x_i, x_j)$:神奇的图书管理员,看一眼原始输入就能直接给出”相似度”分数 RBF核的无限维特征 以一维输入为例,RBF核为: \[k(x, z) = \exp\left(-(x-z)^2\right)\] 展开这个公式: 展开指数: \(k(x, z) = \exp(-x^2)\exp(-z^2)\exp(2xz)\) 泰勒级数展开 $\exp(2xz)$: \(\exp(2xz) = \sum_{n=0}^{\infty} \frac{(2xz)^n}{n!} = \sum_{n=0}^{\infty} \frac{2^n}{n!} (x^n z^n)\) 代回得到: \(k(x, z) = \sum_{n=0}^{\infty} \left( \exp(-x^2) \sqrt{\frac{2^n}{n!}} x^n \right) \cdot \left( \exp(-z^2) \sqrt{\frac{2^n}{n!}} z^n \right)\) 这清晰地展示了隐式映射: \[\Phi(x) = \exp(-x^2) \left( \sqrt{\frac{2^0}{0!}}x^0, \sqrt{\frac{2^1}{1!}}x^1, \sqrt{\frac{2^2}{2!}}x^2, ... \right)\] 这是一个包含 $x$ 的所有幂次项的无限维向量! 结论:RBF核自动地、隐式地添加了无穷多个特征($x^0, x^1, x^2, …$),赋予GP拟合任意复杂函数的能力。我们只需计算一个简单的指数函数。 理解了核函数的强大能力后,现在我们来看看高斯过程是如何从哲学概念真正落实到具体计算的。 1.4 从哲学到计算:GP如何真正进行预测 哲学层面的理解:高斯过程考虑无穷多条可能的函数曲线。当观测到数据后,它”扔掉”所有不经过数据点的函数,剩余的函数形成后验分布。 通俗的比喻:想象一下,你想预测一条一米长的金属杆上任意点的温度。你手头只有几个测量数据,比如: 在10cm处,温度是30°C 在40cm处,温度是50°C 在90cm处,温度是25°C 现在,你想知道在70cm处的温度是多少?或者,整条杆的温度曲线长什么样? 传统方法:你可能会假设温度分布遵循某种特定的函数形式,比如二次函数 $T(x) = ax^2 + bx + c$,然后用已有的三个数据点去拟合,解出参数$a, b, c$。这样你就得到了一个唯一的、确定的温度曲线。 GP的思路:高斯过程彻底抛弃了”先假设一个函数形式”的想法。它的思路非常”开放”:在看到任何数据之前,我认为任何一条光滑的曲线都有可能是真实的温度曲线。 它考虑的不是一个函数,而是一个包含了无穷多条可能函数的”函数集合”或”函数空间”。 但实际计算中,GP不是真的生成无穷函数。它利用数学捷径,直接根据已有数据计算新点的预测。整个过程分为三步: 步骤1:构建协方差矩阵(”关系总表”) 这是整个计算的核心。GP的第一件事,就是利用你选择的核函数(那个”相似性规则”),为所有我们关心的点(包括已知的和未知的),制作一张巨大无比的”关系总表”。这张表在数学上被称为协方差矩阵 $\Sigma$。 这张表记录了每两个点之间的”相似度”或”关联性”: 10cm 40cm 90cm 70cm (新) 10cm 自己和自己最像 和40cm有点像 和90cm不像 和70cm有点像 40cm 和10cm有点像 自己和自己最像 和90cm不像 和70cm很像 90cm 和10cm不像 和40cm不像 自己和自己最像 和70cm有点像 70cm (新) 和10cm有点像 和40cm很像 和70cm有点像 自己和自己最像 这张表可以用一个分块矩阵来更清晰地表示: \[\Sigma = \begin{pmatrix} K(X_{obs}, X_{obs}) & K(X_{obs}, X_{new}) \\ K(X_{new}, X_{obs}) & K(X_{new}, X_{new}) \end{pmatrix}\] $K(X_{obs}, X_{obs})$:已知点之间的内部关系 $K(X_{new}, X_{new})$:新点之间的内部关系 $K(X_{obs}, X_{new})$:连接已知与未知的桥梁 步骤2:应用”高斯魔法”(条件概率) 高斯过程的定义保证了,所有这些点的温度值 $[Y_{obs}, Y_{new}]$ 作为一个整体,共同服从一个多元高斯分布,而这个分布的”形状”就是由我们刚刚构建的协方差矩阵 $\Sigma$ 所决定的。 现在,问题就转化成了一个经典的概率问题: 已知一个多元高斯分布,并且我们已经观测到了其中一部分变量的值($Y_{obs}$),求剩下那部分未知变量($Y_{new}$)的概率分布是什么? 这在数学上叫做求解条件概率 $p(Y_{new} Y_{obs})$。 而高斯分布最神奇的性质之一就是,它的条件概率分布依然是一个高斯分布,并且其均值和方差有精确的解析解!我们不需要做任何近似或迭代,只需要套用一个固定的矩阵运算公式就可以得到。 对于联合高斯分布: \[\begin{pmatrix} \mathbf{y} \\ \mathbf{f}_* \end{pmatrix} \sim \mathcal{N} \left( \mathbf{0}, \begin{pmatrix} K(X, X) + \sigma_n^2I & K(X, X_*) \\ K(X_*, X) & K(X_*, X_*) \end{pmatrix} \right)\] 条件概率分布为: $$\mu_{a b} = \mu_a + C B^{-1} (\mathbf{b} - \mu_b)$$ $$\Sigma_{a b} = A - C B^{-1} C^T$$ 步骤3:得出预测公式 代入GP的具体参数,得到: 预测均值(最佳预测值): \(\bar{\mathbf{f}}_* = K(X_*, X) [K(X, X) + \sigma_n^2 I]^{-1} \mathbf{y}\) 预测协方差(不确定性): \(\text{cov}(\mathbf{f}_*) = K(X_*, X_*) - K(X_*, X) [K(X, X) + \sigma_n^2 I]^{-1} K(X, X_*)\) 深入理解: 如何理解均值公式? 最佳预测值是所有已知观测值的加权平均。 权重是怎么来的? 权重取决于新点 $X_{new}$ 与各个已知点 $X_{obs}$ 的”关系”(由协方差矩阵的非对角块 $K(X_{new}, X_{obs})$ 提供)。 直观理解: 新点(70cm)和已知点(40cm)关系很密切(因为它们离得近),所以40cm处的温度(50°C)在加权平均中就占有很高的权重。 新点(70cm)和已知点(90cm)关系比较疏远,那么90cm处的温度(25°C)的权重就很低。 如何理解方差公式? 不确定性 = 先验的不确定性 - 从数据中学到的信息量。 先验的不确定性:在看到任何数据之前,我们对新点 $X_{new}$ 的不确定性是最大的。这个值由核函数 $k(X_{new}, X_{new})$ 决定(矩阵的右下角)。 从数据中学到的信息量:当我们引入观测数据 $Y_{obs}$ 后,这些数据为我们的预测提供了信息,从而降低了我们的不确定性。数据点离新点越近、信息量越足,我们能够从先验不确定性中”减去”的部分就越多。 直观理解: 在70cm处,由于离40cm很近,我们从40cm的数据点那里”学到”了很多信息,所以不确定性被大幅削减。 如果在某个离所有已知点都很远的地方(比如25cm处)进行预测,那么已知数据提供的信息量很少,我们能减去的不确定性就很少,因此最终的方差会很大。 可视化理解:GP就像一个概率版的”连点成线”——它画出一条最可能的曲线(均值),并给出”不确定性带”(方差),告诉你这条线在不同区域的可靠程度。 第二部分:采集函数——探索与利用的平衡 有了GP代理模型后,每个未知点 $x$ 都有预测分布 $\mathcal{N}(\mu(x), \sigma^2(x))$。采集函数决定”下一个实验点在哪里”。 这涉及经典的探索 vs. 利用权衡: 利用(Exploitation):在当前已知最优点附近实验(预测均值 $\mu(x)$ 最高) 探索(Exploration):去未知区域实验(不确定性 $\sigma^2(x)$ 最大) 2.1 期望提升(Expected Improvement, EI) 最常用的采集函数。假设当前最佳值为 $y_{best}$,EI计算的是:在点 $x$ 做实验,产率超过 $y_{best}$ 的期望值。 数学上,它计算 $y - y_{best}$ 在 $y > y_{best}$ 区域的期望。一个点如果: 预测均值 $\mu(x)$ 很高(利用) 或不确定性 $\sigma^2(x)$ 很大(探索) 其EI值都会很高。 优化循环: 找到使EI最大化的点:$x_{next} = \arg\max_x \text{EI}(x)$ 做实验,得到 $(x_{next}, y_{next})$ 更新GP模型 重复,直到满意或预算用完 总结:从哲学到实践的完整图景 贝叶斯优化的威力在于其系统性地平衡了探索与利用,用最少的实验次数找到最优解。 高斯过程的核心优势: 非参数性:不预设函数形式,适应任何复杂函数 不确定性量化:不仅给预测值,还给置信区间 核技巧:通过简单的核函数,隐式利用无限维特征空间 从理论到实践的完整路径: 哲学层面:GP考虑所有可能函数,数据筛选出后验分布 传统方法是演绎法:先假设一个公理(模型形式$f(x)$),然后用数据去推导参数。如果公理错了,结论就不可靠。 高斯过程是归纳法:它不预设任何具体的函数形式,只预设一些非常符合直觉的”规则”(通过核函数)。然后,它让数据自己”说话”,从数据出发,归纳出在每个点上,函数值最可能是什么,以及这个可能性有多大的范围。 数学层面:利用高斯分布性质,将无限维问题转为有限维矩阵运算 协方差矩阵构建:利用核函数为所有相关点(已知+未知)构建”关系总表” 条件概率应用:利用高斯分布的条件概率公式,一步到位地得出解析解 预测公式推导:得出均值和方差的精确计算公式 计算层面:核技巧让我们在原始空间计算,却享受高维空间的表达能力 核技巧本质:所有计算只依赖于特征向量的内积,而不是特征向量本身 无限维映射:RBF核通过泰勒级数展开,自动添加无穷多个特征 计算效率:只需计算简单的核函数,就能获得无限维特征空间的表达能力 这套理论不仅适用于化学反应优化,还广泛应用于超参数调优、材料设计、药物发现等需要”昂贵实验”的领域。它代表了机器学习与实验科学深度融合的典范。
Machine Learning & AI
· 2025-10-08
ChemXploreML:一款开箱即用的桌面软件,让分子属性预测迈向自动化与平民化
ChemXploreML:一款“开箱即用”的桌面软件,让分子属性预测迈向自动化与平民化 本文信息 标题: 使用ChemXploreML的机器学习流程进行分子属性预测 作者: Aravindh Nivas Marimuthu and Brett A. McGuire 发表时间: 2025年5月20日 单位: 麻省理工学院化学系 (美国),美国国家射电天文台 (美国) 引用格式: Marimuthu, A. N., & McGuire, B. A. (2025). Machine Learning Pipeline for Molecular Property Prediction Using ChemXploreML. Journal of Chemical Information and Modeling, 65, 5424–5437. https://doi.org/10.1021/acs.jcim.5c00516 软件与数据链接: ChemXploreML文档: https://aravindhnivas.github.io/ChemXploreML-docs/ ChemXploreML软件发布: https://github.com/aravindhnivas/ChemXploreML/releases 数据集与模型文件: https://zenodo.org/doi/10.5281/zenodo.15007626 摘要 我们在此推出ChemXploreML,一个为基于机器学习的分子属性预测而设计的模块化桌面应用程序。该框架的灵活架构允许将任何分子嵌入技术与现代机器学习算法相集成,使研究人员无需深厚的编程专业知识即可定制其预测流程。为了展示该框架的能力,我们实现并评估了两种分子嵌入方法——Mol2Vec和VICGAE(方差-不变性-协方差正则化的GRU自编码器)——并结合了最先进的基于树的集成学习方法(梯度提升回归、XGBoost、CatBoost和LightGBM)。我们使用五个基本分子性质——熔点、沸点、蒸气压、临界温度(CT)和临界压力——作为测试案例,在来自《CRC化学与物理手册》的数据集上验证了我们的框架。对于分布良好的性质,模型取得了优异的性能,其中CT预测的$R^2$值高达0.93。值得注意的是,虽然Mol2Vec嵌入(300维)提供了略高的精度,但VICGAE嵌入(32维)表现出相当的性能,同时计算效率显著提高。ChemXploreML的模块化设计便于轻松集成新的嵌入技术和机器学习算法,为定制化的属性预测任务提供了一个灵活的平台。该应用程序通过直观的界面,自动化了化学数据预处理(包括基于UMAP的分子空间探索)、模型优化和性能分析,使得复杂的机器学习技术变得触手可及,同时为高级化学信息学用户保留了可扩展性。 背景 在化学科学中,快速准确地预测分子性质,对于筛选化合物、加速新材料和新药物的发现至关重要。熔点(MP)、沸点(BP)、蒸气压(VP)、临界温度(CT)和临界压力(CP)等基本物理化学性质是理解分子行为的基础,无论在工业应用还是理论研究中都不可或缺。然而,通过传统实验方法测定这些性质不仅耗时费力,成本也十分高昂,这极大地限制了我们探索广阔化学空间的能力。 机器学习(ML)的崛起为分子属性预测带来了革命性的变化。其核心挑战在于如何将分子的化学结构转化为机器能够理解的数字“语言”,即分子嵌入(molecular embedding),同时最大限度地保留关键的化学信息。近年来,诸如Mol2Vec和VICGAE(方差-不变性-协方差正则化的GRU自编码器)等先进的嵌入技术应运而生,它们能够将分子映射到高维向量空间中,为精准预测奠定了基础。 然而,一个成功的预测任务不仅依赖于好的分子表示和ML算法,更需要一个完整、稳健的工作流,它涵盖了从数据清洗、预处理、模型选择、超参数优化到性能评估的每一个环节。对于许多化学家而言,搭建这样一个复杂的计算流程需要跨领域的编程和数据科学知识,技术门槛相当高。因此,目前迫切需要一个能够将这些复杂步骤集成并自动化的工具,让化学研究者可以专注于化学问题本身,而不是纠缠于代码和算法细节。 关键科学问题 能否开发一个模块化的、用户友好的桌面应用程序,将从数据预处理、分子嵌入、模型训练、超参数优化到结果可视化的整个机器学习流程集成起来,从而降低分子属性预测的技术门槛,使其能够被更广泛的化学研究者使用? 同时,利用这样一个统一的平台,不同的分子嵌入技术(如高维的Mol2Vec和低维的VICGAE)在与先进的树模型结合进行属性预测时,它们在预测精度和计算效率之间存在怎样的具体权衡关系? 创新点 发布ChemXploreML软件:开发并推出了一款功能全面、模块化的桌面应用程序,旨在实现分子属性预测流程的自动化和“平民化”,其内置了包括九种降维算法在内的丰富数据探索工具。 系统性评估嵌入技术:在统一的软件框架下,对两种代表性的分子嵌入方法——Mol2Vec(无监督、高维)和VICGAE(自编码器、低维)——进行了并排的性能基准测试。 揭示精度与效率的权衡:明确量化了不同嵌入方法在性能上的权衡关系:高维的Mol2Vec在精度上略胜一筹,而低维的VICGAE在性能相当的情况下,计算速度快了近10倍,为不同应用场景(如高通量筛选)提供了选择依据。 研究内容 核心工具:ChemXploreML的功能与架构 ChemXploreML旨在将复杂的ML工作流封装在一个直观的桌面应用中。它主要由分子嵌入、机器学习训练和分子分析/探索三大核心模块组成。 graph TD subgraph direction LR subgraph "输入与探索" A("加载数据文件<br/>(CSV、JSON等)") --> B("<b>分子分析模块</b><br/>- 单分子性质计算<br/>- 官能团/环系分析") A --> C("<b>数据探索</b><br/>- 元素/结构/性质分布<br/>- 降维可视化(UMAP、t-SNE等)") end subgraph "特征工程(分子嵌入)" C --> D("<b>分子嵌入模块</b>") subgraph "支持的嵌入器" D1("VICGAE") D2("Mol2Vec") D3("ChemBERTa") D4("MoLFormer-XL") end D --> E{{"分子嵌入向量<br/>(.npy文件)"}} end subgraph "模型训练与预测" E --> F("<b>机器学习训练模块</b>") subgraph "训练流程" F1("配置训练<br/>(Train/Test划分、CV)") --> F2("选择ML模型") F2 --> F3("高级选项<br/>(数据清洗、HPO、SHAP)") F3 --> F4("运行与保存<br/>(生成.pkl模型)") end F --> G("<b>结果分析</b><br/>- 性能指标(R²、RMSE)<br/>- Parity Plot<br/>- 适用域分析") F4 --> H("<b>机器学习预测模块</b><br/>- 加载已训练模型<br/>- 预测新分子") end ChemXploreML软件提供了从数据输入到模型预测的端到端解决方案,其核心功能和内置工具包括: 丰富的分子嵌入器:内置了包括VICGAE、Mol2Vec、ChemBERTa、MoLFormer-XL在内的四种SOTA嵌入模型。 全面的机器学习模型库:支持从线性模型、支持向量机、近邻算法到**高级梯度提升框架(XGBoost、LightGBM、CatBoost)**等多种算法。 强大的数据探索工具:除了基本的数据集统计分析,软件还集成了九种降维算法用于化学空间的可视化探索。 自动化的工作流程:通过Optuna进行超参数优化,通过Cleanlab进行数据清洗,通过SHAP进行模型解释,将复杂的ML操作流程化、自动化。 核心概念深度解析:高级功能模块 智能数据清洗:Cleanlab算法 是什么? Cleanlab是一种先进的机器学习算法,专门用于自动检测和修正数据集中错误的标签(label)。在化学属性预测任务中,“标签”就是我们希望模型预测的目标值,例如实验测得的熔点。由于实验或记录错误,这些标签有时会是错误的,这种情况被称为标签噪声(label noise)。 工作原理 Cleanlab的核心是置信学习(Confident Learning)框架。其基本思想是:如果一个模型在交叉验证中,能够持续且自信地将某个数据点预测为A类,但它的真实标签却是B类,那么这个数据点的标签B就很有可能是错误的。Cleanlab通过系统性地估计每个数据点的噪声概率,来识别出这些“可疑”的样本。 在ChemXploreML中的作用 在ChemXploreML中启用Cleanlab功能,软件会在模型训练前自动运行该算法,识别并移除那些标签可能错误的分子。这相当于在投喂给模型“学习资料”之前,先请了一位“自动审校员”修正错误,从而确保模型学习到的是更干净、更准确的结构-性质关系,最终提升其预测的准确性。 模型可靠性评估:适用域分析(AD) 适用域(Applicability Domain, AD)定义了模型能够做出可靠预测的“化学空间”范围。如果一个新分子的特征超出了这个范围,模型对它的预测就可能是不可信的外插。ChemXploreML通过计算杠杆值和马氏距离来帮助用户评估AD。 杠杆值(Leverage Value) 杠杆值是统计学中用于回归诊断的一个指标,它衡量了一个数据点在特征空间(X空间)中的极端程度。一个数据点的杠杆值越大,说明它的**分子特征(即其嵌入向量)**相对于训练集中的所有分子来说越“特立独行”或“异常”。在预测时,如果一个新分子的杠杆值过高,说明它落在了模型的适用域之外,模型在训练时很少见过类似结构的分子,因此其预测结果的置信度较低。 马氏距离(Mahalanobis Distance) 马氏距离是一种更高级的距离度量,它在计算时考虑了特征之间的相关性以及数据分布的方差。它衡量的是一个点距离数据云中心的“统计学距离”。一个大的马氏距离意味着这个分子在多维特征空间中是一个统计学上的离群点。与杠杆值一样,它也是判断一个新分子是否在AD内的重要指标,对于衡量一个分子是否为离群点更为稳健。 化学空间探索:高维数据的降维与可视化 ChemXploreML的降维模块提供了一套强大的算法,将高维的分子嵌入向量投影到二维或三维空间,从而实现对化学空间的可视化。 软件支持以下九种降维方法,每种方法在保持数据结构(局部/全局)和计算速度方面各有千秋: | 方法 | 核心描述 | 局部/全局结构保持 | 速度 | | :— | :— | :— | :— | | PCA | 线性技术,最大化保留数据方差。 | 中/优 | 快 | | UMAP | 非线性流形学习,平衡保持局部和全局结构。 | 优/中 | 快 | | t-SNE| 非线性技术,擅长可视化数据的聚类结构。 | 优/差 | 慢 | | KernelPCA| 使用核方法的非线性PCA。 | 良/良 | 较慢 | | PHATE | 基于热扩散,擅长可视化数据中的轨迹和演变趋势。 | 良/优 | 中 | | ISOMAP | 非线性技术,保持点之间的测地线距离。 | 优/良 | 中 | | Laplacian Eigenmaps| 通过构建图来保持局部流形信息的光谱方法。 | 优/差 | 快 | | TriMap | 使用三元组约束来同时保持局部和全局结构。 | 优/良 | 快 | | Factor Analysis | 线性统计方法,用于发现潜在的“因子”变量。 | 有限/良| 快 | 本研究的作者特意选用了UMAP,因为它能很好地捕捉化学空间中复杂的非线性结构-性质关系,在保持局部聚类和全局拓扑结构之间取得了很好的平衡,且计算速度快。 **图1:五种热力学性质数据集的元素组成和结构分布分析。左侧面板显示元素频率分布,其中碳(C)、氧(O)和氮(N)是所有数据集中最主要的元素。右侧面板显示分子大小分布的核密度估计图,以及指示结构组成的饼图:非环状(橙色)、芳香性(蓝色)和环状非芳香性(绿色)化合物。 图2:数据集中分子性质的分布分析。主图显示了熔点(MP, °C)、沸点(BP, °C)、蒸气压(VP, kPa at 25 °C)、临界压力(CP, MPa)和临界温度(CT, K)的频率分布。插图中的Q-Q图评估了每个分布的正态性,线性排列表示符合正态分布。计算出的偏度值揭示了不同程度的分布对称性,偏度值越接近零表示分布越对称。 图3:UMAP投影图,展示了五种不同性质的分子嵌入的聚类模式。每个子图代表一个二维的高维分子数据表示,其中的点根据其各自的属性值进行着色。 注意:此处选择的色图因其高视觉对比度而被使用。 UMAP的可视化结果(图3)直观地证明了其有效性。图中每个点代表一个分子,颜色代表其属性值。性质相近的分子在二维投影空间中也倾向于聚集在一起,形成了从蓝色(低值)到红色(高值)的平滑过渡区域,清晰地揭示了嵌入向量所捕捉到的结构-性质关系。 模型性能基准测试 **表3:不同回归模型在各项分子性质上的优化超参数。 图4:使用Mol2Vec嵌入的梯度提升回归器在MP预测任务上的超参数优化景观图,通过Optuna的等高线图进行可视化。该优化空间探索了关键的GBR参数。较暗的区域代表最小化目标函数(RMSE)的更优参数组合。每个子图中的灰点代表实际采样的超参数组合。 ChemXploreML集成的Optuna能够自动寻找最优的模型超参数组合。图4展示了这一过程的可视化结果,其中深色区域代表能使模型误差最小化的“最优”参数区间。表3则列出了所有模型在所有任务上找到的最优超参数。 表1:分子性质数据集大小摘要。 | 性质 | 嵌入器 | 原始数量 | 验证后数量 | 清洗后数量 | | :— | :— | :— | :— | :— | | MP | Mol2Vec | 7476 | 7476 | 6167 | | | VICGAE | 7476 | 7200 | 6030 | | BP | Mol2Vec | 4915 | 4915 | 4816 | | | VICGAE | 4915 | 4909 | 4663 | | VP | Mol2Vec | 398 | 398 | 353 | | | VICGAE | 398 | 398 | 323 | | CP | Mol2Vec | 777 | 777 | 753 | | | VICGAE | 777 | 776 | 752 | | CT | Mol2Vec | 819 | 819 | 819 | | | VICGAE | 819 | 818 | 777 | 表4:不同机器学习模型使用Mol2vec和VICGAE嵌入进行分子属性预测的性能比较。对于每种性质,最佳性能指标(最高的R²和最低的RMSE、MAE)以粗体突出显示。括号中的值代表最后一位有效数字的标准差。所有指标均通过5折交叉验证计算。 图5:使用Mol2Vec和VICGAE两种嵌入方式,不同机器学习模型在各种分子性质上的性能比较。图中显示了GBR、CatBoost、LGBM和XGBoost模型预测五种分子性质的R²分数。对于每种性质,实心条代表使用Mol2Vec嵌入的预测,而相同颜色的较浅条形表示使用VICGAE嵌入。条内的黑色实线代表通过5折交叉验证获得的误差棒(标准差)。 图6:五种分子性质(行)使用四种回归模型(列)时,实验值与预测值的比较。蓝色和橙色点分别代表训练集和测试集数据,黑线表示理想的1:1相关性,橙色线表示测试集的线性拟合。插图中显示了通过5折交叉验证得到的性能指标(R², RMSE, MAE)。 整体性能:在临界温度(CT)、临界压力(CP)和沸点(BP)这三个性质上都取得了优异的预测性能,$R^2$值普遍在0.9以上。熔点(MP)的预测性能中等($R^2$ ≈ 0.86)。蒸气压(VP)的预测最差($R^2$ ≈ 0.4)。 模型比较:在四种先进的树模型中,CatBoost通常表现最佳或并列最佳。 关键权衡:Mol2Vec vs. VICGAE的精度与效率 图7:在MP数据集上,不同回归模型使用Mol2Vec和VICGAE嵌入时的计算执行时间比率。基准测试在Apple M2 Pro处理器上进行。条内的黑色实线代表误差棒,表示测速因子中的不确定性。 这是本研究的核心发现之一: 精度:在大多数情况下,维度更高(300-D)的Mol2Vec在预测精度上略微优于维度更低(32-D)的VICGAE。 效率:然而,如图7所示,VICGAE的计算速度远超Mol2Vec。在最大的MP数据集上,对于GBR模型,使用VICGAE的速度是Mol2Vec的近10倍。 权衡结论:对于需要最高精度的任务,Mol2Vec是更好的选择。但对于需要快速迭代或进行高通量筛选的应用,VICGAE以微小的精度牺牲换来了巨大的速度提升。 Q&A Q1: Mol2Vec和VICGAE这两种分子嵌入方法的核心思想有什么不同?为什么它们的向量维度差异如此之大(300 vs 32)? A1: Mol2Vec的核心思想源于自然语言处理的Word2Vec。它将分子“拆解”成一系列重叠的化学子结构(类似句子中的“单词”),然后通过无监督学习,为每个子结构(单词)学习一个向量表示。一个分子的最终向量是其所有子结构向量的简单加和。它更关注局部的化学环境。其300维的设置是借鉴了NLP领域的常用维度,旨在提供足够丰富的表达空间。 VICGAE则是一种基于自编码器的深度学习方法。它训练一个神经网络,先将整个分子的SELFIES字符串“压缩”到一个低维的潜在向量(编码过程),然后再从这个向量“解压”并重建出原始的字符串(解码过程)。通过这种方式,模型被迫学习到一个能够捕捉分子全局结构信息的、高度浓缩的向量表示。其32维的设计是为了在保持信息完整性的同时,实现最大程度的压缩,从而提高计算效率。 Q2: 软件支持九种降维方法。为什么作者在论文中只使用UMAP?其他方法(如t-SNE或PHATE)可能会揭示什么不同的信息? A2: 作者选择UMAP是因为它在保留局部和全局结构、计算速度以及可视化效果之间取得了出色的平衡,非常适合进行探索性数据分析。相比之下: t-SNE更专注于保留局部结构,它能生成非常清晰的类簇(clusters),但在不同类簇的相对位置和大小(即全局结构)上可能会产生误导。 PHATE则特别擅长可视化数据中的轨迹和连续演变过程。如果数据集包含一个从简单到复杂的同系物序列,PHATE可能会比UMAP更清晰地展示出这种连续变化的流形结构。 ChemXploreML提供其他工具的价值在于,用户可以根据自己数据的特点和分析目标,选择最合适的降维“镜头”来观察化学空间。 Q3: ChemXploreML作为一个桌面应用,它的目标用户是谁?相比于写Python脚本,它提供了哪些核心价值? A3: ChemXploreML的目标用户是广大不具备深厚编程或数据科学背景的化学研究者,例如有机合成化学家、药物化学家或材料科学家。相比于需要手动编写Python脚本的工作流,它的核心价值在于集成化、自动化和易用性: 降低技术门槛:用户无需编写一行代码,即可通过点击图形界面完成从数据导入、预处理、模型训练、调优到评估的全过程。 工作流标准化:它将最佳实践(如交叉验证、数据清洗、超参数优化)固化在软件流程中,避免了用户因经验不足而犯错,保证了结果的可靠性和可复现性。 效率提升:将所有工具链无缝集成,大大减少了在不同软件和脚本之间切换的时间,让研究者能更专注于分析和化学洞见的挖掘。 关键结论与批判性总结 核心结论 本文成功开发并推出了一款名为ChemXploreML的模块化桌面应用,它将复杂的机器学习流程集成于一个用户友好的图形界面中,显著降低了分子属性预测的技术门槛。 在预测五种基本物理化学性质的任务中,ChemXploreML内置的流程表现出色,在CT、CP、BP等性质上$R^2$值均超过0.9,性能达到或超过了许多更复杂的模型。 对比发现,高维(300-D)的Mol2Vec嵌入在精度上略有优势,而低维(32-D)的VICGAE嵌入在保持相当性能的同时,计算效率提升了近10倍,揭示了两者在实际应用中的重要权衡。 研究强调,模型性能不仅取决于算法,也高度依赖于数据集的质量和性质分布。 潜在影响 ChemXploreML作为一款开源的、开箱即用的工具,有望在更广泛的化学和材料科学社区中普及机器学习的应用,真正实现AI工具的“平民化”。 本文对不同嵌入方法的系统性基准测试,为研究者在具体应用中如何选择合适的分子表示法提供了清晰的、量化的指导。 存在的局限性 本研究主要集中在回归任务和树模型上,尚未在软件中全面实现分类任务和其他类型的模型。 性能评估主要基于几个经典的物理化学性质,在更复杂的生物活性或量子化学性质预测上的表现有待进一步验证。 添加全新的、非内置的嵌入方法或模型,可能仍需要一定的编程能力。 未来研究方向 继续扩展ChemXploreML的功能,集成更多的模型(如图神经网络、分类器)和嵌入技术。 开发专门针对小样本、数据分布不均问题的嵌入或学习策略。 全面利用软件内置的“适用域(Applicability Domain)”分析功能,以评估模型对全新分子的预测可靠性。
Machine Learning & AI
· 2025-10-08
【JCIM】主动学习+自由能计算,高效发掘帕金森病新药候选分子
【JCIM】主动学习+自由能计算,高效发掘帕金森病新药候选分子 导语:面对数以十亿计的潜在药物分子,我们如何才能高效地“大海捞针”?当精准的物理计算遇上聪明的机器学习,一场药物发现的革命正在悄然发生。本文将深度解析一篇发表于Journal of Chemical Information and Modeling的研究,看科学家们如何利用“主动学习”这一AI策略,成功为帕金森病的一个新兴靶点找到了8种全新的抑制剂。 本文基本信息 摘要 富含亮氨酸重复激酶2(Leucine-rich repeat kinase 2, LRRK2)是家族性帕金森病中突变最多的基因,其突变会导致该疾病的病理特征。LRRK2的WDR结构域是一个研究尚浅的帕金森病药物靶点,在计算化学领域寻找苗头化合物的关键评估实验(CACHE)挑战赛的第一阶段之前,没有任何已知的抑制剂。CACHE挑战赛的一个独特优势在于,所有预测的分子都会在内部进行实验验证。在此,我们报告了LRRK2 WDR抑制剂分子的设计和实验确认。我们围绕先前已确认的两个苗头化合物,利用一个基于优化自由能分子动力学(MD)模拟的主动学习(Active Learning, AL)机器学习(ML)工作流程,并结合热力学积分(TI)框架来扩展化学系列。在35个经过实验测试的分子中,我们最终发现了8个经过实验验证的新型抑制剂(命中率高达23%)。这些结果证明了我们基于自由能的主动学习工作流程在快速、高效地探索大型化学空间,同时最大限度地减少昂贵模拟的数量和时长方面的有效性。该工作流程可广泛应用于筛选任何化学空间中具有更高亲和力的小分子类似物,但需遵循相对结合自由能(RBFE)计算的一般限制。相对于命中化合物的实测抑制常数$K_I$,TI MD计算的平均绝对误差为2.69 kcal/mol。 原文引用信息 Gusev, F., Gutkin, E., Gentile, F., Ban, F., Koby, S. B., Li, F., Chau, I., Ackloo, S., Arrowsmith, C. H., Bolotokova, A., Ghiabi, P., Gibson, E., Halabelian, L., Houliston, S., Harding, R. J., Hutchinson, A., Loppnau, P., Perveen, S., Seitova, A., Zeng, H., Schapira, M., Cherkasov, A., Isayev, O., & Kurnikova, M. G. (2025). Active Learning-Guided Hit Optimization for the Leucine-Rich Repeat Kinase 2 WDR Domain Based on In Silico Ligand-Binding Affinities. Journal of Chemical Information and Modeling, 65, 5706-5717. https://doi.org/10.1021/acs.jcim.5c00588 CACHE challenge:http://dx.doi.org/10.1021/acs.jcim.4c01267 https://cache-challenge.org/challenges/predict-hits-for-the-wdr-domain-of-lrrk2 背景 关键科学问题 帕金森病(PD)是全球第二大神经退行性疾病,而LRRK2基因的突变是其重要的遗传风险因素。尽管针对LRRK2激酶结构域的抑制剂已有报道,但其旁边的WDR结构域却是一个几乎未被探索过的“处女地”靶点。在药物研发的早期阶段,最大的挑战之一是如何从包含数十亿甚至更多分子的巨大化学文库中,找到能与特定靶点结合的“苗头化合物”。 图1:在CACHE挑战赛第一阶段发现并用于后续优化的经实验验证的苗头化合物。 传统的虚拟筛选方法速度快但精度有限;而基于物理的自由能计算(如RBFE)虽然被誉为预测结合亲和力的“金标准”,但其计算成本极其高昂,对每个分子进行计算都无异于“用高射炮打蚊子”。因此,核心的科学问题是:如何设计一个智能工作流程,既能利用自由能计算的精确性,又能避免其高昂的成本,从而在广阔的化学空间中高效地进行“苗头到先导”的优化? 创新点 本文最大的创新点在于构建并验证了一个“主动学习-相对结合自由能”(AL-RBFE)计算管线。它巧妙地将两种技术结合起来: 机器学习(ML):训练一个轻量级模型,能够快速、低成本地预测分子的结合能力。 物理模拟(MD-TI):进行精确但耗时的相对结合自由能(RBFE)计算,为ML模型提供高质量的训练数据。 其核心思想是:不再盲目地进行昂贵的物理计算,而是让一个不断学习和进化的ML模型来充当“领航员”,智能地挑选出最有潜力的分子进行精确验证。这种“少即是多”的策略,旨在以最小的计算代价实现最大的科学发现,并在著名的CACHE挑战赛中一举夺魁。 分子筛选漏斗各阶段数量总结 筛选阶段 (Screening Stage) 分子数量 (Number of Molecules) 备注 (Notes) 初始化学空间 ~55亿 来源为 Enamine REAL 数据库 (2022年10月版)。 初步SMARTS搜索 (通用类似物) 341281 基于苗头1和2的骨架进行SMARTS模式搜索,得到的通用类似物总数 (154204 + 187077)。 初步SMARTS搜索 (最相似类似物) 250 采用更严格的SMARTS模式,搜索与苗头1和2最相似的类似物 (58 + 192)。 最终主动学习集 (AL Set) 25171 经过两轮分子对接和过滤后,最终用于主动学习-自由能计算循环的分子库总数 (16101 + 9070)。 预备主动学习集 (Pre-AL Set) 302 包含了所有最相似类似物、最近邻搜索和人工挑选的分子,这些分子都计算了相对结合自由能。 选择进行实验验证的分子 75 从计算结果中挑选出预测活性最好的70个分子,加上为增加化学多样性而挑选的5个分子,送去进行实验测试。 实验确认的苗头化合物 8 在75个被测试的分子中,最终有8个被SPR实验确认为新的LRRK2 WDR结构域抑制剂。 研究内容:四步解锁高效药物发现 研究团队设计了一个精巧的四步计算管线,将理论计算与实验验证紧密结合。 第一步:大海捞针——从55亿分子中筛选候选集 研究的起点是巨大的Enamine REAL数据库,其中包含了约55亿个可合成的化合物。为了从中筛选出与两个已知苗头化合物(Hit 1 和 Hit 2)相似的分子,研究者采用了双管齐下的策略: 近亲筛选(Closest Analogs):使用严格的化学子结构(SMARTS)模式,寻找与苗头化合物结构最相似的“近亲”,共找到约250个分子。 远亲筛选(General Analogs):使用更宽泛的骨架(Murcko scaffold)模式,寻找结构更多样化的“远亲”,初步筛选出约34万个分子。 随后,通过分子对接和一系列过滤条件,研究团队将“远亲”候选集缩小到了一个约2.5万个分子的“主动学习集”(AL set),为下一步的智能筛选做好了准备。 第二步:智能导航——主动学习引导的自由能计算 这是整个研究的“灵魂”所在。传统的做法可能是随机挑选分子进行昂贵的自由能计算,而本文的AL-RBFE工作流则像一个带GPS的智能寻宝系统。 graph LR subgraph 主动学习循环 A(开始:拥有少量<br/>精确自由能数据的<br/>“pre-AL set”) --> B{训练ML模型}; B --> C[**快速预测:**<br/>ML模型为2.5万个<br/>候选分子打分]; C --> D{**智能选择:**<br/>挑选得分最高的<br/>一小批分子}; D --> E[**只对这批分子**<br/>进行高精度的MD-TI<br/>自由能计算]; E --> F(**更新数据集:**<br/>将新的精确数据<br/>加入训练集); F --> B; end F --> G(**结束循环:**<br/>选出最终的<br/>高分候选分子<br/>送去实验验证); style A fill:#f9f,stroke:#333,stroke-width:2px style G fill:#ccf,stroke:#333,stroke-width:2px 这个循环的精髓在于: 训练(Train):用已知的、通过精确物理计算(热力学积分,TI,Pre-AL Set)得到的相对结合自由能(ddG)数据,训练一个机器学习模型。这个模型的目标是学习“分子结构”与“结合强度”之间的复杂关系。 预测(Predict):利用训练好的模型,对2.5万个候选分子进行快速打分。这一步成本极低,可以在短时间内完成。 选择(Select):根据模型的预测分数,贪婪地选出排名最靠前的一小批(例如几十个)最有希望的分子。 计算(Calculate):只对这批被智能选出的“精英分子”进行高精度的MD-TI自由能计算。这确保了宝贵的计算资源被用在刀刃上。 迭代(Iterate):将新获得的精确计算结果加入到训练数据集中,让模型在下一轮循环中变得更“聪明”。 这个“训练-预测-选择-计算”的闭环迭代了8次,每一次都让模型对化学空间的理解更深一步,从而能够更精准地指导后续的探索方向。 图2. 用于苗头化合物优化的计算方法概述。 (A) 用于优化两种苗头化合物的计算流程总图(详见正文描述)。对应于最相似类似物、通用类似物和RBFE计算的模块分别以蓝色、灰色和绿色显示。NNS代表最近邻搜索(nearest neighbors search),CS代表人工选择(curated selection)(详见方法第4节)。(B) 用于苗头1和苗头2的最相似类似物和通用类似物的SMARTS模式。(C) 苗头1和苗头2的通用类似物的虚拟筛选。图中显示了流程中每一步之后,苗头1和苗头2类似物的分子数量。(D) 由主动学习(AL)引导的RBFE计算(AL-RBFE)的自动化计算工作流程总图。该工作流程包括两个主要模块:AutoML和MD TI RBFE,以及四个主要步骤。化学空间以二维t-SNE图的形式展示。计算了ΔΔG的苗头1和苗头2的类似物,以彩色方块和三角形表示,颜色方案与图4一致。 第三步:技术细节——自由能微扰与计算优化 对于计算化学领域的读者,论文中的一些技术细节同样值得关注: 巧妙的微扰路径:在进行炼金术自由能计算(即模拟一个分子“变”成另一个分子)时,研究者发现直接从Hit 1出发进行某些转换会导致结构扭曲和计算失败。为了解决这个问题,他们设计了一个中间体“Ligand X”,通过“Hit 1 → Ligand A → Ligand X → 目标分子”的路径,成功避免了原子碰撞和不合理的构象,保证了自由能计算的稳定性和可靠性。 动态的资源分配:为了进一步节省成本,研究团队采用了一种“动态优化”策略。模拟程序可以自动检测计算是否收敛,并按需增加或停止模拟时长,避免了在已经收敛的计算上浪费机时。 第四步:成果展示——从计算到实验验证 经过8轮主动学习,计算结果令人振奋。 效率的提升:从下方的箱形图(图3)可以看出,随着AL迭代的进行(从AL-1到AL-7),计算出的分子结合自由能(ddG)的分布整体持续向更优(更负)的方向移动,证明AL确实在引导计算走向“富矿区”。 图3. 计算得到的MD TI RBFE值与主动学习迭代次数的关系,以箱形图展示。 在主动学习循环中计算的苗头1(红点)和苗头2(绿点)的类似物展示于图2D中。苗头1和苗头2的RBFE值被设定为0 kcal/mol,并在预备主动学习(pre-AL)步骤中由黑色箭头标出。被选中并提交进行实验评估的两种苗头化合物的类似物,用黑色或品红色的圆圈圈出。品红色显示的是已测得K~D~值的新苗头化合物(见图5和表S3)。 探索的多样性:通过t-SNE降维可视化(图4),可以看到AL选择的分子(彩色点)广泛分布在整个化学空间中,而不是仅仅聚集在初始苗头化合物(紫色圈)周围。这表明AL不仅在“利用”已知的高分区域,同时也在积极“探索”未知的、具有结构多样性的新区域,这对于发现全新骨架的药物至关重要。 图4. 主动学习引导下计算得到的TI ABFE值,以苗头1和苗头2类似物化学空间的t-SNE投影图展示。 (A) 苗头1类似物的每一次独立主动学习迭代的t-SNE图。 (B) 苗头2类似物的每一次独立主动学习迭代的t-SNE图。 (C) 所有主动学习迭代的t-SNE图。每个分子以一个点的形式显示。苗头1和苗头2由黑色箭头标出。分子根据其计算出的ABFE值进行着色,其余分子以灰色显示。初始苗头化合物用紫色的圆圈圈出。被选中进行体外实验验证的分子用黑色的圆圈圈出,而已被实验确认的优化后苗头化合物则用品红色的圆圈圈出。 最终,研究团队从672个经过RBFE计算的分子中挑选了75个进行实验验证。在成功合成并测试的35个化合物中: 8个分子被实验证实具有抑制活性,解离常数$K_D$范围在18 µM到230 µM之间。 实验命中率高达23%,这在针对全新靶点的药物发现项目中是一个非常出色的成绩。 计算预测的结合自由能与实验值的平均绝对误差(MAE)为2.69 kcal/mol,显示了计算方法具有一定的预测能力。 图5. 实验测得的苗头分子的结合特性。 图中展示了SPR传感图、含氟化合物的NMR谱图片段(完整谱图见图S2)(10 μM化合物分别与0 μM [黑色] 和 20 μM [红色] 蛋白质混合),以及化学结构。图中还标明了通过DLS测量的化合物溶解度和聚集情况,以及每个化合物是从哪个集合中被识别出来的。 关键结论与批判性总结 关键结论 AL-RBFE工作流程是真实有效的:该研究成功地将AI驱动的主动学习与高精度的物理计算相结合,为解决实际的药物优化问题提供了一个强大且高效的范例。 成功攻克全新靶点:从零开始,针对一个没有任何已知抑制剂的LRRK2 WDR靶点,该方法不仅找到了苗头化合物,还成功地将其拓展为了一个具有8个活性分子的化学系列。 资源效率最大化:通过智能选择,该方法仅计算了672个分子的自由能,就从一个2.5万个分子的库中识别出了多个活性化合物,极大地节省了计算资源。 为后续研究奠定基础:这8个新发现的抑制剂,尽管活性仍有待提高,但它们结构新颖、理化性质良好,为进一步优化成高活性的帕金森病候选药物提供了坚实的起点。 批判性总结 优势:本研究最突出的优点是其前瞻性和实用性。它不仅提出了一个先进的计算框架,更重要的是在一个公开、公正的竞赛(CACHE Challenge)中前瞻性地验证了其有效性,这比回顾性研究更具说服力。23%的实验命中率充分展示了该方法的强大预测能力。 局限与展望: 活性仍需提升:目前发现的抑制剂活性多处于中低微摩尔(µM)级别,距离成为真正的临床候选药物还有很长的路要走,需要进一步的药物化学优化。 计算精度:2.69 kcal/mol的平均绝对误差在当前领域属于可接受范围,但仍有提升空间。作者也指出,该误差值受到了两个离群值较大的影响,排除后误差可降至1.66 kcal/mol。这提示我们,自由能计算的力场和模拟方案仍需不断完善。 统计显著性:尽管AL选择的分子在命中率上远超“pre-AL”组(8个命中里有7个来自AL),但作者坦诚,由于样本量较小,尚不能从统计学上得出AL优于其他选择策略的结论,尽管趋势非常明显。 小编点评: 方法还是那一套方法,docking部分可以借鉴一些,Schrodinger很多使用那些约束骨架的docking,对FEP计算非常有用。同时也发现他们也手动挑选化合物了 AL+FEP已经很多人在用了,得抓紧时间跟上,加实验发个JCIM没啥问题。 看到人家发文章也都远远500个mutation起步,还是得多算 FEP/TI也越来越讲究动态调整模拟时间和λ windows,得快点有个软件能自己用 本文用的机器学习方法有点太简单了,我还是有机会的。每一轮都可以用不同的模型(最好的那个);每一轮也就100个数据点,看来不用那么多? 最终实验亲和力也不是那么突出,命中率还行。是不是AL的贡献不知道,但感觉ddG几轮下来并没有太降低,可能是在局部最小的往外爬?还没有原始hit亲和力高呢 2.69 kcal/mol的误差有点大,但人家是有些多步mutation的,可能多样性还行 反正基础库和突变体库以后肯定是要自动生成的,不能再手动设计了,这篇还是更偏RBFE能算的变化小的,less偏虚拟筛选 研究方法学(Methods)总结 4.1 数据库筛选与文库准备 本研究的计算流程核心是筛选两个分子集合:pre-AL集(包含与苗头化合物Hit 1和Hit 2最相似的类似物)和AL集(包含结构更多样化的普适类似物)。这两个集合最终都用于主动学习引导的相对结合自由能(AL-RBFE)计算。 4.1.1 最近似物(Closest Analogs)的虚拟筛选 该部分旨在构建一个高质量的初始训练集(pre-AL set)。 SMARTS搜索:首先,在包含55亿化合物的Enamine REAL数据库中,使用基于Hit 1和Hit 2化学结构的SMARTS模式进行搜索。这些模式保留了关键的药效团(如草酰胺、肽键)和芳香性,但允许重原子替换,从而找到结构最相似的“近亲”。此步骤为Hit 1和Hit 2分别找到了58和192个最近似物。 最近邻搜索(NNS):为了增加Hit 1类似物的多样性,研究者将当时已计算出较好结合能的Hit 1类似物作为“查询分子”,在更大的普适类似物库中寻找它们的最近邻(基于ECFP6指纹和Tanimoto距离),额外获得了27个独特的分子。 人工挑选(CS):在完成初步的RBFE计算后,研究者以结合能最佳的“配体A”(Ligand A)为母核,通过人工审视的方式,挑选了一批在1,2,3,4-四氢异喹啉环上有不同取代基的类似物,又增加了49个分子。 pre-AL集的形成:综合以上三个步骤,最终形成的pre-AL集共包含302个分子(134个Hit 1类似物,168个Hit 2类似物),这些分子都经过了RBFE计算,作为主动学习的“种子数据”。 4.1.2 普适类似物(General Analogs)的虚拟筛选 该部分旨在构建一个巨大且多样化的候选池(AL set),供主动学习算法探索。 SMARTS搜索:使用更宽泛的、基于Murcko骨架的SMARTS模式在Enamine REAL数据库中进行搜索,允许任意重原子替换,只要保持芳香性模式。此步骤为Hit 1和Hit 2分别筛选出约15.4万和18.7万个普适类似物。 无模板对接(Template-Free Docking):使用Glide SP软件,将上述分子对接到LRRK2 WDR结构域的晶体结构(PDB ID: 6DLO)上。对接后进行严格筛选,保留满足以下条件的分子:(1) 关键的吲哚环与苗头化合物的MD代表性构象偏差(RMSDindole)小于等于5 Å;(2) Glide对接分数小于等于-6。此步骤将候选库缩小至约2.2万(Hit 1)和2.7万(Hit 2)个分子。 模板对接(Template Docking):为了进一步提高对接姿势的准确性,研究者使用OpenEye HYBRID软件进行模板对接,以Hit 1和Hit 2的MD代表性构象作为模板。对接后再次筛选,保留满足以下条件的分子:(1) 广义Murcko骨架与模板的偏差(RMSDMurcko)小于等于4 Å;(2) OpenEye对接分数小于等于-6;(3) 分子与蛋白的碰撞(clash)分数小于等于0.5。 AL集的形成:经过模板对接和筛选,并去除重复及带电荷的分子后,最终形成了包含25,171个分子的AL集(16,101个Hit 1类似物,9,070个Hit 2类似物),作为主动学习算法的“探索空间”。 4.2 炼金术相对结合自由能(RBFE)计算 4.2.1 分子动力学(MD)模拟 初始结构与参数化:使用先前在CACHE挑战赛第一阶段获得的对接复合物结构作为MD模拟的起始点。 力场与溶剂:蛋白使用FF14SB力场,水分子使用TIP3P模型,配体则使用GAFF2力场和AM1-BCC电荷模型。 模拟流程:使用AMBER 20的pmemd.cuda模块进行GPU加速模拟。标准流程包括:能量最小化、NVT系综下的升温、NPT系综下的密度平衡,以及最终在NVT系综下进行100 ns的生产性模拟。 代表性结构提取:舍弃前10 ns的轨迹,对后90 ns的蛋白Cα原子和配体重原子坐标进行平均,得到一个平均结构。然后从轨迹中提取与该平均结构RMSD最小的一帧,作为后续计算的代表性结构。 4.2.2 配体准备与参数化 使用RDKit进行参照分子和目标分子间的原子映射,并利用FESetup软件包生成蛋白-配体复合物和溶剂化配体体系的拓扑和坐标文件。力场和电荷模型与MD模拟部分保持一致。 4.2.3 热力学积分(TI)模拟 λ调度:所有模拟均采用包含软核势(softcore potentials)的9点高斯求积λ调度。 动态资源优化:这是本研究的一个关键效率优化点。研究者采用了一种“动态飞行中(on-the-fly)”的计算资源优化策略。该方法首先进行一个较短的初始模拟(如2.5 ns),然后通过算法自动检测模拟是否平衡以及计算是否收敛(通过比较前后两半时间序列的Jensen-Shannon距离)。如果未达到收敛标准,则自动增加一小段模拟时长(如0.5 ns),并重复检测,直至收敛。这极大地避免了在已收敛的计算上浪费机时。 多副本处理:当计算资源允许时,会对一些转换(尤其是预测结合能较好的)进行多次重复模拟。最终的ddG通过集合方法计算,即合并所有重复模拟的梯度时间序列数据,以获得更稳健的均值。 4.3 主动学习(AL)文库构建:ML引导的选择 4.3.1 分子表示与ML算法 分子特征化:为了让机器学习模型能“读懂”分子,研究者使用了多种分子指纹技术,包括:RDKit路径指纹、Morgan指纹(ECFP6)、3D分子指纹(E3FP)以及2D和3D的药效团指纹。 机器学习算法:采用了scikit-learn库中的三种经典算法:线性回归、随机森林和高斯过程回归(使用Tanimoto核)。 4.3.2 机器学习建模 迭代训练:在AL的每一次循环中,模型都会在所有已获得精确ABFE(由RBFE转换而来)数据的分子上进行训练。 模型选择:通过留一法交叉验证(LOOCV),在所有分子表示和ML算法的组合中,选择R2分数最高的模型作为当次迭代的最佳模型。 筛选策略 在AL迭代1-6轮,模型仅在Hit 1的衍生物上训练,并仅用于筛选AL集中属于Hit 1的16101个类似物。 在第7轮,模型在Hit 1和Hit 2的所有衍生物上训练,并用于筛选整个AL集。 选择方式为贪婪选择,即直接挑选出模型预测结合能最负(最优)的一批化合物进入下一轮的精确TI计算。 4.4 实验验证分子的选择 根据挑战赛的预算(75个分子或10000美元),研究者挑选了最终提交的分子列表。其中,70个分子完全基于计算出的ABFE值进行贪婪选择(67个Hit 1衍生物,3个Hit 2衍生物),另外5个分子则在具有负ABFE值的Hit 2衍生物中,偏向于化学多样性进行选择。 4.5 实验方法 蛋白表达与纯化:在Sf9昆虫细胞中表达LRRK2 WDR结构域蛋白,并通过亲和层析(Ni-NTA)和尺寸排阻色谱进行纯化,最终通过SDS-PAGE和质谱确认纯度和大小。 表面等离子共振(SPR):使用Biacore 8K仪器评估化合物的结合亲和力。将生物素化的LRRK2蛋白固定在芯片上,然后将一系列稀释的化合物流过芯片表面,通过监测响应信号的变化,使用1:1结合模型拟合动力学曲线并计算解离常数KD。 动态光散射(DLS):用于评估化合物的溶解度和聚集情况,确保SPR信号不是由化合物聚集引起的假阳性。 19F-NMR光谱:对于含氟的化合物,使用19F-NMR作为正交验证方法。通过观察加入蛋白后19F信号的展宽或化学位移变化,来独立地确认化合物与蛋白的结合。
Machine Learning & AI
· 2025-10-08
✨ AI制药新浪潮:让AI“看脸”识药!✨ 嘿,朋友们!“AI制药”这个词是不是已经刷爆了你的朋友圈,成为科技界和医药界共同瞩目的焦点?传统的AI方法,例如让AI去“阅读”分子的化学式(像SMILES序列这种线性字符串)或者去细致分析由原子和化学键构成的分子结构图(如图神经网络GNN所做的那样),无疑已经在药物发现的征途上取得了令人鼓舞的进展,为我们筛选和设计潜在药物分子提供了有力的工具。但今天,我们要聊点更酷、更富有想象力的——让AI直接“看”分子的“照片”来学习和发现新药! 没错,你没有听错,就像我们人类通过观察面部特征来识别人一样,AI也开始学习通过分子的视觉特征来识别它们、预测它们的性质,甚至启发新药的设计。这无疑为AI制药打开了一扇全新的大门。 最近,一篇发表在国际知名期刊《Briefings in Bioinformatics》上的重磅综述 《Image-based molecular representation learning for drug development: a survey》就为我们系统地梳理了这个新兴且潜力无限的领域。这篇推文将带你深入解读这篇综述的精髓,一同探索计算机视觉(CV)这项在图像识别、自动驾驶等领域大放异彩的技术,是如何与药物研发这一古老而又充满挑战的科学领域碰撞出耀眼的火花,并有望让新药发现之路变得更加直观、更加高效!准备好了吗?让我们一起踏上这场AI“看脸”识药的奇妙探索之旅吧!想象一下,如果AI能像经验丰富的化学家一样‘一眼’洞察分子的潜力,甚至启发我们设计出从未想过的新药结构,那将为攻克疑难杂症、守护人类健康带来怎样革命性的希望? 🤔 药物研发的老大难与AI的“前浪”们 我们都深知,新药研发绝非易事,它堪称一场充满未知与挑战的“九九八十一难”的修行: 时间长:一款新药从最初的实验室概念到最终摆上药房货架,平均需要耗费10到15年漫长的时间,这期间充满了无数的变数和等待。 花钱多:动辄数十亿美元的研发投入,对于任何一家制药企业来说都是一笔巨大的开销,堪比一台高速运转的“碎钞机”,且并不能保证最终一定有回报。 失败率高:更令人沮丧的是,绝大多数进入临床试验阶段的候选化合物,最终都会因为效果不佳或安全性问题而折戟沉沙,成功率极低。 为了改变这一成本高昂、效率低下的现状,科学家们和产业界都将殷切的目光投向了飞速发展的人工智能(AI)。在AI赋能药物研发的诸多环节中,一个至关重要的核心任务,就是构建精准且高效的分子表示——也就是说,如何将复杂多样的分子结构和性质信息,巧妙地转化成AI模型能够理解并有效处理的“语言”或“数据格式”。 在“图像派”AI崭露头角之前,AI制药领域的“前浪”们已经探索并实践了多种主流的分子表示方法: 计算药学方法:这类方法历史悠久,例如利用分子指纹(记录分子中是否存在特定亚结构片段的二进制串)、拓扑指数(基于分子图理论计算得出的数值)等所谓的“描述符”来刻画分子。它们计算相对简单直接,易于理解和使用,但缺点也比较明显,这些方法往往难以全面细致地捕捉分子三维空间结构、电子云分布等精细的结构信息,有时会显得“管中窥豹”。 自然语言处理(NLP)方法:这种方法独辟蹊径,将分子的化学结构表示为线性化的字符串,如广为人知的SMILES(简化分子线性输入规范)序列或InChI(国际化学标识符)字符串。这样一来,就可以借鉴NLP领域成熟的技术(如循环神经网络RNN、Transformer等)来处理这些“分子语言”。这就像给每个分子起了个独特的“化学名”。然而,正如人的名字有时难以完全概括其性格和能力一样,这些线性“名字”在表达分子的复杂空间构象、手性特征以及重要的生物学功能时,也可能在准确捕捉分子身份和关键生物学特征方面表现出局限性。 图神经网络(GNN)方法:近年来,GNN在AI制药领域异军突起。它将分子天然地看作一个由原子(图中的节点)和化学键(图中的边)组成的图结构。GNN能够直接在图上进行学习,有效捕捉原子的邻接关系和局部化学环境。GNN在预测分子性质、药物-靶点相互作用等多种任务上都表现出色,但和NLP方法类似,它们在精确捕捉分子的全局拓扑特性、细微的立体化学差异以及那些决定其生物活性的关键三维特征方面,有时仍会遇到挑战,同样可能在准确捕捉分子身份和重要生物特征方面存在局限性。 这些“前浪”们无疑为AI制药的进步立下了汗马功劳,推动了整个领域的发展。但是,追求卓越的科研人员总是在不断探索更好、更强大的工具和方法。于是,一种全新的、更贴近人类直觉的分子表示学习方式——基于图像的分子表示学习,便应运而生,并迅速吸引了业界的广泛关注! 💡 为什么是“图像”?AI“看图识珠”的独特魅力 你可能会好奇,我们已经有了那么多表示分子的方法了,为啥还要多此一举,费劲把分子画成“照片”再让AI去学习呢?直接用图像这种方式到底有什么特别的“魔力”? 直观且独特,信息更丰富:正如世上没有两片完全相同的树叶,每个化学物质也都有其独特的视觉“长相”和空间“姿态”。一张精心绘制的2D分子结构图,或者一个能够展示其三维空间排布的3D分子图像,能够非常直观地将分子的原子组成、成键方式、官能团分布乃至空间构象等信息呈现出来。这种视觉信息对于AI来说,可能比抽象的描述符或线性序列更容易捕捉到关键的结构模式和细微差异,例如通过分析图像中原子的类型、相对位置以及原子间的连接方式,可以有效地识别不同的化学物质。 借鉴成熟技术,加速应用落地:计算机视觉(CV)作为人工智能领域发展最为成熟的分支之一,已经在图像识别(比如人脸识别、物体分类)、目标检测(比如自动驾驶中的车辆行人检测)、图像分割等诸多领域取得了举世瞩目的成功,拥有大量先进的算法模型(如CNN、Vision Transformer等)和强大的开源工具库。这些现成的、经过大规模数据验证的“轮子”和经验,可以相对容易地被迁移和应用到分子图像的分析与处理中,从而大大加速基于图像的AI制药技术的发展和落地。 捕捉复杂模式,洞察潜在规律:分子图像,特别是3D图像,能够蕴含比传统描述符或SMILES序列更为丰富的、高维度的结构信息和空间关系。AI模型,尤其是深度学习模型,擅长从这些高维数据中自动学习和提取复杂的、非线性的特征模式,例如特定的药效团形状、疏水/亲水区域的分布、潜在的分子间相互作用位点等。这些模式往往是人类难以通过肉眼观察或简单规则定义的,但对于理解分子的性质和功能至关重要。 助力理解与设计,启发药物创新:通过分析从分子图像中学习到的特征,AI不仅能够完成对分子性质的精准预测(例如预测其溶解度、渗透性、生物活性或毒性),更有潜力帮助我们更深入地理解分子的构效关系(SAR)和构性关系(SPR)。例如,通过可视化AI模型关注的图像区域(如使用CAM技术),我们可以推断出哪些结构特征对目标性质有重要贡献。这种理解反过来又可以指导我们进行更合理的分子修饰和全新的分子设计,从而加速创新药物的发现进程。 简单来说,让AI“看图识药”,就像是给AI装上了一双能够洞察分子微观世界的“火眼金睛”。它不再仅仅依赖于抽象的符号或数字,而是能够直接从分子的“视觉形象”中学习,从而更全面、更深入地洞察分子的奥秘,为药物研发带来全新的视角和强大的动力。 🚀 AI如何“看图”:解密图像分子表示学习流程 那么,AI究竟是如何一步步“看懂”这些分子图像,并从中提取有用信息的呢?这篇综述为我们精心梳理并呈现了一个通用的、条理清晰的工作流程(其核心思想可见下图示意,该图改编自原论文中的图2,旨在更形象地展示这一过程): 分子视觉表示的一般流程的图片 数据准备与筛选:万事开头难,第一步是获取高质量的分子数据。研究人员首先会从各种公开的或私有的化学与生物学数据库(例如我们耳熟能详的PubChem, ChEMBL, ZINC, DrugBank等)中,根据研究目标(比如特定疾病靶点、某一类化学结构等)提取大量的化合物信息。这些信息最常见的初始形式是SMILES(简化分子线性输入规范)字符串,它是一种用文本字符描述分子结构的便捷方式。 分子“拍照”——图像生成:接下来,需要将这些文本化的分子信息转换成AI能够“看”的图像格式。这一步至关重要,图像的质量和一致性直接影响后续模型的学习效果。 对于2D分子图像,通常会利用像RDKit这样强大的开源化学信息学工具包。RDKit能够解析SMILES字符串,创建分子图的内部表示,生成分子的2D布局,并最终渲染成图像,同时允许调整图像大小等视觉参数。 对于3D分子图像,则可能需要更复杂的处理。例如,可以使用专业的分子建模软件(如Maestro等软件)先生成分子的三维构象(即原子在空间中的具体坐标),然后再从不同的观察视角(如围绕y轴多次旋转45度)、不同的渲染风格(如球棍模型、空间填充模型等)“拍摄”这些3D结构,以捕捉更全面的空间信息和表面特征。这些全局旋转操作不会影响分子实际坐标,每次旋转后都会保存当前视图的图像。 AI“看图”学习——特征提取:当大量的分子“照片”准备就绪后,就轮到AI模型大显身手了。目前,卷积神经网络(CNN)及其各种变体(如ResNet, DenseNet, Inception等)是处理图像数据的绝对主力。这些生成的分子图像会被作为输入“喂”给CNN模型。CNN通过其独特的多层结构,包括一系列精心设计的卷积层、池化层和全连接层,能够自动地从原始像素数据中逐层抽象并学习到越来越复杂的图像特征。 卷积层通过可学习的滤波器(卷积核)扫描图像,不仅仅能检测到边缘、角点、特定形状的官能团等基础视觉模式,更关键的是,它能学习到这些模式在分子图像中的空间排布、相对位置关系,甚至是某些区域的“纹理”或“密度”差异(这可能间接反映了分子表面静电势或电子云分布的粗略特征)。这些信息对于理解分子间的相互作用和识别药效团至关重要。 池化层则对特征图进行降采样,在减少数据量的同时,努力保留那些最具区分性的核心特征,并赋予模型一定的平移、旋转不变性,使得模型对分子在图像中的朝向不那么敏感。 经过多层卷积和池化对信息的逐层提炼与抽象,全连接层最终会将这些高度浓缩的、信息量丰富的视觉特征进行整合,并输出一个能够全面代表该分子图像核心信息的特征向量。这个特征向量就是AI对该分子“长相”及其潜在化学意义的数字化理解。 训练与预测——模型优化与应用:获得了分子的图像特征向量后,最后一步就是利用这些特征来完成特定的药物研发任务。这通常涉及到模型的训练和预测阶段。 模型训练:我们会使用带有已知标签(例如,已知某个分子的生物活性值、毒性等级,或者它是否能与某个靶点结合)的分子图像数据集来训练CNN模型。通过定义合适的损失函数(衡量模型预测结果与真实标签之间的差距)和选择高效的优化算法(如梯度下降法及其变体),不断调整CNN模型内部的参数(权重和偏置),使得模型能够从图像特征中学习到预测这些标签的规律。 模型预测:一旦模型训练完成并达到满意的性能,就可以用它来对新的、未知的分子图像进行预测了。例如,输入一个新的候选药物分子的图像,训练好的模型就能输出其预测的活性值、毒性概率等信息,从而为药物筛选和优化提供决策支持。 常用公共数据库一览 (部分列举自原论文表2): 数据库名称 (Database Name) 简介 (Description) PubChem 由美国国立卫生研究院(NIH)下属的国家生物技术信息中心(NCBI)维护,是一个内容极其丰富的大型公共化学数据库,汇集了来自全球超过750个数据源的化合物、物质及生物活性数据 。 ChEMBL 由欧洲生物信息学研究所(EBI)精心维护和运营,专注于收集和整理具有类药性的生物活性分子的化学结构、实验测定的生物活性数据以及相关的基因组学信息,是药物发现的重要资源 。 ZINC 由加州大学旧金山分校(UCSF)的Irwin和Shoichet实验室合作开发和维护的商业可购买化合物数据库,特别强调化合物结构的多样性和可获得性,并提供了便捷的在线搜索和筛选功能 。 DrugBank 一个综合性的、可自由访问的在线数据库,不仅提供了已批准上市药物的详细信息(如作用机制、药代动力学、药物相互作用等),也收录了大量处于临床研究阶段的在研化合物的数据 。 MoleculeNet 由斯坦福大学Pande实验室发起并维护的一个旨在推动分子机器学习发展的基准平台,它包含了一系列精心挑选和整理的、用于评估和比较不同机器学习模型在分子性质预测任务上性能的公开数据集,涵盖了从量子力学计算到生物物理实验再到生理学效应等多个方面 。 🧠 AI“看图”的十八般武艺:核心学习方法大盘点 让AI“看图”可不是简单地用一个模型、一种方法就能包打天下。实际上,根据我们拥有的训练数据类型(比如是否有现成的“答案”或标签)、学习的目标以及想要解决的具体问题,科学家们已经发展出了多种精妙的学习范式。这篇综述独具匠心地基于计算机视觉领域成熟的学习范式分类体系,对现有基于图像的分子表示学习研究进行了系统性的归纳和总结,为我们理解这个交叉领域的全貌提供了清晰的路线图。 下面这张精心整理的大表(其内容综合并改编自原论文中的图3、图4以及表3、表4的核心信息)将带你快速了解几种主要的学习方法、它们的核心思想、一些代表性的研究工作或模型,以及它们各自的优势与面临的挑战: 学习范式 (Learning Paradigm) 核心思想 (Core Idea) 代表工作/模型 (Examples from Survey) 优点 (Pros) 挑战 (Cons) 监督学习 (Supervised Learning) (一句话概括:AI的‘看图答题’模式,有标准答案供学习)核心特点: 这类方法依赖于“有标签”的训练数据 。也就是说,我们需要为模型提供大量的分子图像,并且每张图像都对应一个已知的“答案”或“标签”(例如,该分子的生物活性值、毒性等级、是否与特定靶点结合等)。模型的目标就是学习从输入图像到这些已知标签的映射关系。 - 常规监督学习 (Vanilla) 这是最直接的监督学习方式 。简单来说,就是用带有明确标签(如IC50值、毒性分类等)的分子图像集合来训练一个深度学习模型(通常是CNN),让模型直接学习预测这些性质或活性。 KekuleScope, Chemception, Deepsnap, ResNet18DNN 数据利用高效: 如果拥有高质量的标签数据,模型能够充分学习并建立准确的预测模型 。准确率潜力高: 在数据充足且质量好的情况下,往往能达到较高的预测精度 。结果相对易于解释和验证: 由于有明确的预测目标和真实标签,模型的性能评估和结果分析相对直接 。 高度依赖标签数据: 获取大量、高质量的药物研发相关标签数据通常成本高昂且耗时(例如,需要进行大量生物实验)。对数据偏误敏感: 如果训练数据存在偏差(如类别不平衡、标签错误等),模型的性能会受到严重影响 。模型泛化能力可能受限: 模型可能只在与训练数据相似的未见数据上表现良好,对于差异较大的新分子,泛化能力可能不足 。小数据集易过拟合: 在标签数据量较少的情况下,复杂的深度学习模型很容易过フィット,即过度学习训练数据的噪声和特异性,导致在新数据上表现不佳 。 - 孪生CNN学习 (Siamese CNN) (一句话概括:AI的‘找不同’或‘连连看’高手)这种方法采用一种特殊的网络结构,包含两个或多个结构完全相同、参数共享的CNN分支 。每个分支分别处理一个输入分子图像,然后将它们各自提取的特征向量进行比较(例如计算距离或相似度),从而判断这两个分子是否相似,或者它们之间的关系 。常用于需要比较输入的任务。 tCNNs (Liu et al.), Torres et al. 适合小样本学习: 通过学习区分“相似对”和“不相似对”,即使在每个类别样本量不多的情况下也能有效学习 。强大的度量学习能力: 非常适合学习分子间的相似性或距离度量,这对于药物重定位(寻找老药新用)、虚拟筛选等任务非常有用 。所需标签数据形式更灵活: 有时只需要成对的相似/不相似标签,而非每个样本的绝对属性标签 。鲁棒性强: 对输入数据的噪声和变形具有一定的容忍度 。 计算量相对较大: 需要同时处理和比较多个输入,并训练两个网络,对计算资源的要求可能更高 。模型训练和调优更复杂: 如何设计有效的损失函数(如对比损失 、三元组损失)以及如何构建高质量的训练样本对,都需要更专业的知识和经验 。特征空间的解释性: 虽然能判断相似性,但其学习到的潜在特征空间的具体含义有时不如直接预测属性的模型那么直观。 - 多模态学习 (Multi-modal) (一句话概括:AI的‘全科医生’,综合多方信息看诊)核心思想是“博采众长”。它不仅仅依赖于单一的分子图像信息,而是尝试同时整合和学习来自多种不同类型或来源的数据(即“模态”),例如,将分子的2D/3D图像与其对应的化学名称、文本描述(如专利文献中的合成方法、性质描述)、基因表达数据、蛋白质序列信息等结合起来进行联合学习。模型的目标是学习一个能够融合所有这些信息的统一表示 ,或者让不同模态的信息相互补充、相互印证。 Wang et al. (专利图文信息重建), MCNN-DDI, MultiDTI 信息更全面,视角更多元: 通过融合不同来源的信息,可以获得对分子更完整、更立体的理解,弥补单一模态信息的不足 。可能提升预测准确性和模型鲁棒性: 不同模态的信息可以相互校验和补充,从而提高模型预测的准确性,并使其对单一模态的噪声或缺失不那么敏感 。发现跨模态关联: 有助于揭示不同类型数据之间的潜在联系,例如图像特征与文本描述中特定化学基团的对应关系,从而加深对药物作用机制的理解 。 数据整合与对齐难度大: 不同模态的数据结构、尺度、质量可能差异很大,如何有效地将它们整合、对齐并输入到模型中是一个巨大的挑战 。不同模态数据可能存在不平衡: 某些模态的数据可能远多于其他模态,导致模型学习时产生偏向,对部分模态学习不足或过度学习 。计算成本高,模型设计复杂: 处理和融合多种模态数据通常需要更复杂的模型架构和更大的计算资源 。缺乏标准化方法和基准: 多模态学习在药物研发领域的应用尚处于探索阶段,成熟的方法论和公开的基准数据集相对较少,使得不同研究之间的结果难以比较和复现 。依赖数据质量: 任何单一模态的数据质量差都可能拉低整体模型的性能 。 无监督学习 (Unsupervised Learning) (一句话概括:AI的‘自学探索’模式,无需标准答案也能发现规律)核心特点: 与监督学习相反,这类方法主要使用“无标签”的训练数据 。也就是说,我们只给模型提供大量的分子图像,但并不告诉模型这些图像对应的“正确答案”。模型需要自己从这些数据中探索和发现潜在的模式、结构或规律 。 - 常规无监督学习 (Vanilla) 这是无监督学习的基础形式 。直接在海量的、没有预先标注的分子图像数据上训练模型(例如使用自编码器、聚类算法等),让模型学习数据的内在表示或结构。这种学习到的表示常用于数据降维、异常检测、数据可视化,或者作为后续监督学习任务的“预训练”步骤,为模型提供一个好的初始化参数。 ImageMol, ADMET-CNN, QSAR-CNN 能有效利用海量无标签数据: 药物研发领域存在大量未标记的化合物数据,无监督学习为此类数据的利用提供了可能,无需昂贵的标签成本 。揭示数据中隐藏的模式和结构: 能够帮助我们发现数据中未曾预料到的聚类、关联或异常,可能启发新的科学假设和药物靶点 。辅助数据探索和可视化: 例如通过降维技术将高维分子图像数据投影到低维空间,便于研究人员观察和理解数据分布 。 学习到的模式和结果往往难以解释: 模型发现了某些模式,但这些模式的具体生物学或化学意义可能不明确,需要后续大量的实验验证才能转化为实际应用 。对输入数据的质量和预处理方法非常敏感: 噪声、冗余特征或不恰当的预处理都可能严重影响学习效果,甚至导致错误的结论 。可扩展性面临挑战: 处理超大规模生物数据时,某些无监督学习算法的计算效率可能成为瓶颈,需要大量计算资源 。评估困难且缺乏标准化: 由于没有“标准答案”,评估无监督学习模型的好坏本身就是一个难题,也缺乏统一的评估标准和方法,使得不同研究之间的结果难以比较和复现 。 - 自监督学习 (Self-supervised, SSL) (一句话概括:AI的‘自创习题’学习法,从自身数据中找监督信号)这是一种非常巧妙的无监督学习分支,可以看作是“自己监督自己”。模型通过解决自身数据内部隐含的、自动生成的“代理任务”(pretext task)来学习有用的特征表示 。例如,对于一张分子图像,可以随机遮挡掉一部分,然后让模型去预测被遮挡的部分是什么;或者将图像打乱成若干小块,让模型学习如何将它们恢复成原始图像。通过完成这些精心设计的“智力游戏”,模型被迫学习到关于数据内在结构和语义的深刻理解 。 MolPMoFiT, SMR-DDI, ConvAE 高效利用无标签数据,学习能力强: 继承了无监督学习的优点,并且通过精心设计的代理任务,能够学习到比传统无监督方法更复杂、更鲁棒的特征表示 。预训练模型具有良好的可迁移性: 通过自监督学习在大规模无标签分子图像上预训练得到的模型,其学习到的特征表示往往具有很好的泛化能力,可以方便地迁移到下游各种具体的、标签数据稀缺的药物研发任务中(如活性预测、毒性分类等),只需少量微调即可取得良好效果 。能产生多样的代理任务: 例如预测分子图的遮蔽部分或序列,从而对药物研发相关数据进行全面理解 。 代理任务的设计至关重要: 代理任务的好坏直接决定了模型能学到什么样的特征,设计一个既有效又与下游任务相关的代理任务本身就很有挑战性 。模型通常比较复杂,计算需求高: 为了完成复杂的代理任务,自监督学习模型(如基于Transformer或大型CNN的模型)往往结构复杂,训练过程对计算资源(如GPU)的需求也比较大 。结果的可解释性仍是一个挑战: 与其他深度学习方法类似,其学习过程和决策依据的透明度有待提高 。对数据质量和多样性敏感: 如果预训练数据质量不高或多样性不足(例如数据增强方式不当),学习到的表示可能存在偏差,影响下游任务性能 。 - 迁移学习 (Transfer Learning) (一句话概括:AI的‘经验借鉴’学习法,站在巨人肩膀上看得更远)核心思想是“站在巨人的肩膀上”。它指的是将一个在大型通用数据集(例如包含数百万张自然图像的ImageNet)或某个相关的源任务(例如预测一般化学分子的某种性质)上已经预训练好的模型,将其学到的知识和能力“迁移”到我们当前感兴趣的、但可能数据量不足的药物研发目标任务上 。通常的做法是固定预训练模型的大部分参数(冻结层 ),只对模型的最后几层或新添加的针对特定任务的层进行微调(fine-tuning),使用目标任务的少量标签数据进行训练。 Dalkiran et al., Li et al., ImageCLEF2018 能有效解决药物研发中目标任务数据稀疏的问题: 药物研发中很多特定任务的标签数据非常宝贵和稀缺,迁移学习使得我们可以在这些小数据集上也能训练出性能不错的模型 。加速模型训练,提升模型性能: 利用预训练模型提供的良好初始参数,可以大大缩短目标任务模型的训练时间,并且通常能达到比从零开始训练更好的性能 。利用通用知识: 预训练模型从大规模数据中学到的通用特征(如边缘、纹理、形状等对于图像任务而言)对于理解特定领域的分子图像也可能是有益的,有助于模型更快抓住关键信息 。 “负迁移”风险: 如果源域(预训练数据的领域)和目标域(药物研发任务的领域)之间差异过大,或者预训练任务与目标任务关联性不强,那么强行迁移知识反而可能损害目标任务的性能,导致效果变差 。预训练模型本身的成本和获取: 虽然有很多公开的预训练模型,但针对特定化学或生物图像的优质预训练模型仍然相对较少,自行进行大规模预训练的成本很高 。在小数据集上微调仍有 过拟合风险: 尽管迁移学习有助于缓解,但在目标数据集极小的情况下,微调过程仍然可能导致模型对目标数据过拟合 。模型选择和微调策略需要经验: 选择哪个预训练模型、如何进行微调(例如冻结哪些层、学习率如何设置等)都需要一定的经验和尝试,缺乏统一的指导原则 。 简单小结一下,帮你理清思路: 监督学习就像是一位经验丰富的老师傅,手把手地带着徒弟(AI模型)看图识物,目标非常明确(比如识别出哪些分子有活性),学出来的徒弟通常活儿干得又快又准又狠,但前提是师傅得有足够多、足够好的“教学案例”(即高质量的标签数据)。 无监督学习则更像是一位天赋异禀的学徒在“闭门造车”或“自行悟道”,虽然没有师傅指点迷津(没有标准答案),但通过观察海量的“分子图谱”,也能自己琢磨出一些门道和规律(比如发现某些分子在“长相”上可以归为一类),这种方法潜力巨大,尤其适合在正式学习具体任务前做大量的“预习”和“打基础”(即预训练)。 自监督学习可以看作是这位自学成才的学徒中的“学霸”级玩法,他不仅自己看图,还会自己给自己出各种“看图填空”、“看图拼图”的练习题来做,通过这种方式,他学到的东西更加扎实,理解也更加深刻。 迁移学习则是一位聪明的学徒,他懂得“站在巨人的肩膀上”,把在别处(比如看自然界图片)学到的识别物体轮廓、纹理的本事,巧妙地运用到观察分子“照片”的新任务上,这样往往能事半功倍,尤其是在新任务的“教学案例”不多的时候。 多模态学习则是一位追求全面的“通才”学徒,他不仅看分子的“照片”,还会去阅读关于这个分子的“文字说明书”(比如化学性质描述、相关文献等),力求从各个方面获取信息,做到“眼观六路,耳听八方”,从而对分子有更完整的认识。 🎯 “图像派”AI大显身手:主要应用领域 那么,这些学会了“察言观色”、“看图识珠”的AI模型,究竟能在药物研发的哪些关键环节大显身手,一展其能呢?综述中为我们重点介绍了以下几个已经取得显著进展或展现出巨大潜力的主要应用领域: 药物发现 (Drug Discovery) —— 开启智能筛选新篇章 背景与挑战:传统的药物发现流程,无论是基于靶点的筛选还是偶然的表型筛选,都面临着通量、成本和成功率的巨大挑战。近年来,药物发现的方法论也在悄然发生转变,表型筛选(phenotypic screening)的重要性日益凸显,因为它不依赖于对作用靶点的预先了解,有时能发现全新作用机制的药物。 图像AI的贡献:基于图像的AI模型为此带来了新的解决方案。它们可以直接利用分子图像(无论是2D结构图还是3D构象图)来预测新的、潜在的药物-靶点相互作用(DTI),或者预测化合物在特定表型筛选模型中的活性。这相当于用AI代替了传统实验中大量、重复且耗时耗力的筛选过程,实现了“智能虚拟筛选”。例如,综述中提到的 ImageMol 和 MolPMoFiT 等模型就通过学习分子图像的深层特征,在预测药物活性和靶点相互作用方面展现了令人鼓舞的潜力,为从海量化合物库中快速锁定有希望的候选分子提供了新工具。这种方法的核心在于识别候选药物化合物与目标生物大分子之间的物理相互作用。 生物活性预测 (Biological Activity Prediction) —— 精准量化药效 背景与挑战:生物活性预测是计算化学和药物化学领域的核心任务之一,其目标是基于分子的结构特征来准确预测其与特定生物靶点(如酶、受体)的结合强度,或者其在特定生物检测体系中表现出的生物学效应(如抑制常数Ki、半数有效浓度EC50等)。这是理解药物作用机制、优化先导化合物的关键。 图像AI的贡献:传统的定量构效关系(QSAR)模型在这一领域扮演了重要角色,但它们通常依赖于人工选择和计算的分子描述符(如分子量、电子亲和性、空间构型等),这些描述符的选择本身就是一项复杂的工作,且可能无法完全捕捉决定活性的所有关键信息。而新兴的、基于图像的QSAR模型,例如综述中提及的 Chemception 和 QSAR-CNN 等,则另辟蹊径,它们直接从分子的2D或3D图像中学习与生物活性相关的视觉特征,构建稳健的QSAR模型。研究表明,这类模型在许多任务上展现出与传统QSAR方法相当甚至更优的预测性能,并且省去了人工设计描述符的步骤,使得建模过程更为自动化和数据驱动。 毒性预测 (Toxicity Prediction) —— 为药物安全保驾护航 背景与挑战:药物的毒副作用是导致新药研发失败的最主要原因之一,也是临床应用中需要高度关注的问题。药物毒性是一个复杂的过程,受化合物成分、个体因素、疾病状态等多种因素影响。如果在药物研发的早期阶段就能准确识别和预测化合物的潜在毒性(如肝毒性、心脏毒性、致癌性等),将极大地节约研发成本,缩短研发周期,并最重要的是保障患者的用药安全。 图像AI的贡献:尽管传统机器学习算法(如朴素贝叶斯、SVM、随机森林)已被用于毒性预测,但随着数据量的增加,其性能常遇到瓶颈。近年来,基于图像的深度学习模型,特别是卷积神经网络(CNN),在药物毒性预测方面也显示出持续且显著的改进。AI模型可以通过学习大量已知毒性数据的化合物分子图像,识别出与特定毒性相关的结构模式或“警示结构”。例如,综述中提到的 ResNet18DNN 模型被成功应用于预测药物引起的肝损伤(DILI),而 KekuleScope、Toxic Colors 等模型也被用于基于分子图像预测化合物的毒副作用。这些研究表明,基于图像的毒性预测模型有望成为传统毒理学评估方法的重要补充。 🚧 机遇与挑战:AI“看图”的进阶之路 虽然基于图像的分子表示学习为AI制药描绘了一幅令人振奋的前景图,展现出巨大的应用潜力,但正如任何新兴技术一样,它目前仍处于相对早期的发展阶段。综述也客观地指出了该领域当前面临的一些关键挑战,并高瞻远瞩地为未来的研究方向提供了宝贵的启示: 图像转换损失与信息保真度 (Image Transformation Loss & Information Fidelity) 挑战:将抽象的分子结构信息(例如从SMILES字符串或3D坐标)忠实地、无损地映射到二维或三维图像,本身就是一个复杂的过程。在这个转换过程中,不可避免地会因为投影、渲染、视角选择等因素而丢失或扭曲部分原始的化学信息(比如细微的键角差异、动态的构象变化等)。此外,很多分子图像,特别是那些只展示骨架的2D图像,其信息密度可能相对稀疏,模型可能难以有效提取潜在特征,无法捕获配体、受体以及配体-受体相互作用的3D结构信息,从而影响性能。 未来展望:未来的研究需要更加关注如何优化分子图像的生成策略,以最大程度地保留和突出与目标性质相关的化学信息。同时,一个富有前景的方向是开发能够结合图像学习与其他多视角/多模态学习的方法。例如,可以将分子的2D图像、3D图像、光谱数据、文本描述等多种信息源融合起来,让它们相互补充、相互印证,从而构建更全面、更鲁棒的分子表示。如果AI能够从更保真的多模态信息中学习,我们或许能更早地发现那些具有独特作用机制或全新化学骨架的候选药物,甚至能更准确地预测它们在复杂生物环境中的行为。 模型泛化能力与领域适应性 (Model Generalization & Domain Adaptation) 挑战:深度学习模型,尤其是那些结构复杂的模型,通常需要大量的、多样化的训练数据才能学习到具有良好泛化能力的特征表示。然而,在药物研发的许多特定任务中,高质量的标签数据往往是稀缺的。这使得模型很容易在训练数据上表现优异,但在面对来自不同化学空间、不同实验条件或全新靶点的新分子时,其性能可能会显著下降。也就是说,模型学习到的知识可能过于“特化”于训练时所见的“领域”,难以推广到未知的“新领域”。 未来展望:提升模型的泛化能力是未来的核心攻关方向之一。可以积极探索和应用机器学习中的领域泛化(Domain Generalization)和领域自适应(Domain Adaptation)等先进技术。例如,领域对抗神经网络(DANN)试图通过学习领域不变的特征表示来消除不同数据集之间的分布差异。此外,元学习(Meta-learning)或“学会学习”的方法,旨在让模型能够从少量样本中快速适应新任务,也具有重要的应用潜力。如果AI模型能够真正实现跨领域、跨任务的知识迁移和快速适应,那意味着我们可以用更少的数据、更快地为各种新靶点、新疾病开发出有效的预测工具,极大地加速“个性化医疗”或“罕见病药物研发”等目前面临数据瓶颈的领域。 表示的隐私性与数据安全 (Representation Privacy & Data Security) 挑战:药物研发过程,特别是当涉及到临床试验数据、患者个人健康信息或具有高度商业敏感性的专有化合物数据时,数据的隐私保护和安全问题就显得尤为突出和关键。传统的集中式数据处理和模型训练方式,即将所有数据汇集到一个中央服务器进行处理,无疑会显著增加数据泄露的风险。 未来展望:联邦学习(Federated Learning)为解决这一挑战提供了一种极具吸引力的分布式学习范式。在联邦学习框架下,各个数据持有方(如不同的科研机构、医院或制药公司)可以在本地利用自己的数据训练模型,而无需将原始数据发送出本地。它们只需要向中央服务器共享模型的参数更新或中间结果,中央服务器再对这些更新进行聚合,从而协同训练出一个全局模型。这种“数据不动,模型动”的方式,能够在有效利用多方数据的同时,最大限度地保护数据隐私。此外,还可以结合差分隐私、同态加密等先进的隐私增强技术,为数据和模型安全提供更强的保障。通过以联邦方式优化表示,可以有效减少数据传输,优化带宽,缓解网络拥堵,并利用多样化数据集提升模型整体性能。 表示的可解释性与决策透明度 (Representation Interpretability & Decision Transparency) 挑战:深度学习模型,尤其是基于图像的CNN模型,常常被诟病为“黑箱模型”。也就是说,虽然它们可能在预测任务上表现出色,但我们很难直观地理解它们究竟是如何从输入的分子图像中学习到知识,并最终做出某个具体预测(例如,为什么模型认为这个分子有毒,或者为什么它认为那个分子具有高活性)的。在对安全性要求极高且需要严谨科学论证的药物研发领域,这种缺乏可解释性的“黑箱”特性是其推广应用的一大障碍。我们不仅想知道“是什么”,更想知道“为什么”。 未来展望:增强模型的可解释性,打开“黑箱”,是提升基于图像的AI制药模型实用性和可信度的关键。可以积极借鉴并发展计算机视觉领域已经取得显著进展的各种可解释性AI(XAI)方法。例如,类激活图(Class Activation Mapping, CAM)及其变体(如Grad-CAM)能够高亮显示出输入图像中对模型决策贡献最大的区域,从而帮助我们理解模型关注了分子的哪些结构特征。此外,像LIME(Local Interpretable Model-agnostic Explanations)和SHAP(SHapley Additive exPlanations)这样的模型无关解释方法,也能够为理解复杂模型的预测行为提供有价值的洞察。通过这些技术,我们可以更好地验证模型的科学合理性,发现潜在的数据偏误,甚至从模型的“思考”过程中获得新的科学启发,最终获得值得信赖和公正的表示。 🎉 总结与展望:未来可期,星辰大海! 总而言之,基于图像的分子表示学习,无疑为人工智能赋能药物研发这条充满机遇与挑战的道路,开辟了一条令人耳目一新且兴奋不已的新途径。 它巧妙地将计算机视觉的强大能力引入到微观的分子世界,凭借其表示的直观性、能够充分借鉴成熟CV技术的便捷性、以及有望捕捉传统方法难以刻画的复杂分子模式等独特优势,已经在药物的早期发现、生物活性的精准预测、以及潜在毒性的有效评估等药物研发的关键环节中,展现出了巨大的潜力与应用价值。 正如这篇精彩的综述所深刻强调的那样,尽管目前基于图像的AI制药领域尚处于蓬勃发展的初期阶段,仍然面临着诸如如何在图像转换中最大限度地保真化学信息、如何提升模型在不同化学空间和任务间的泛化能力、如何在利用数据的同时确保其隐私与安全、以及如何打开模型决策的“黑箱”以增强其可解释性和可信度等一系列挑战,但这恰恰也为未来的研究者们描绘出了一幅充满无限可能的创新蓝图,提供了广阔的探索空间和宝贵的科研机遇。 我们完全有理由满怀信心地相信,随着相关算法的持续创新、计算能力的不断增强、高质量数据集的日益丰富以及多学科交叉合作的不断深入,让AI“看脸”识药的梦想将不再仅仅停留在科幻小说的畅想之中,而是会逐渐演变成现实世界中推动新药研发流程提速增效、降低成本、并最终惠及人类健康的强大引擎!这不仅仅是计算工具的革新,更是药物研发思维模式的进化。当AI拥有了‘洞察’分子视觉语言的能力,它将成为科学家探索未知、创造奇迹的得力伙伴,共同谱写人类健康事业的新篇章。这个领域的前方,是星辰大海,未来可期!让我们共同期待并参与到这场激动人心的变革中来,见证AI如何用‘慧眼’点亮新药发现的未来! 对这个激动人心的前沿方向抱有浓厚兴趣的小伙伴们,强烈建议你们深入阅读这篇综述的原文,以便从中获取更多详尽的技术细节、前沿的研究进展以及深刻的学术洞见! 📚 主要参考文献 [1] Li, Y., Liu, B., Deng, J., Guo, Y., & Du, H. (2024). Image-based molecular representation learning for drug development: a survey. Briefings in Bioinformatics, 25(4), bbae294. https://doi.org/10.1093/bib/bbae294 🖼️ 附录:文中图表速览 以下是对原综述中主要图表标题的中文翻译,帮助大家快速回顾核心内容: 图1 (Figure 1): 现有文献中常用的分子表示方法。由于其学习原理的内在局限性,它们都无法实现准确的分子身份识别和特征提取,这促使研究人员探索一种新型的表示方法。 图2 (Figure 2): 分子视觉表示的一般流程。这里我们以CNN为例。它主要包括四个步骤:(1)从数据集中提取SMILES格式的化合物;(2)将SMILES格式表示的分子转换成图像;(3)将分子的图像表示输入到CNN模型中;(4)使用优化算法训练CNN模型进行预测和分析。 图3 (Figure 3): 基于图像处理的各种学习范式图解。具体来说,监督/无监督学习是指用有标签/无标签数据优化AI模型。多模态学习意味着我们使用不同的数据模态(例如文本、图像)协同优化AI模型,而孪生CNN利用对比学习来衡量两个不同输入之间的相似性,以实现更高效的学习。相反,迁移学习利用来自另一个相似任务的知识来辅助缺乏标签数据的目标任务。自监督学习利用数据本身的属性来生成相关标签进行优化。 图4 (Figure 4): 基于不同学习范式的分类法。这里我们列出了代表性的范式及其对应的工作。我们想澄清ImageCLEF2018是所提出方法的名称,“2018”这个日期并非我们特意添加。此外,我们注意到一些工作在其原始论文中没有给出具体名称,因此我们采用“XX等”的形式来指代该工作。 图5 (Figure 5): 孪生CNN模型图解。其核心思想是利用一个卷积网络从分子中提取药物特征,并利用另一个卷积网络从基因特征向量中提取癌细胞系的特征。 图6 (Figure 6): 药物开发中多模态学习图解。其核心思想是开发一个AI模型,以同时处理不同数据模态(即图像和文本)进行药物识别。 图7 (Figure 7): 基于迁移学习的分子识别图解。我们不使用标记数据,而是借助一个大型预训练数据集,该数据集用于生成预训练模型,我们使用此模型辅助模型学习。这里的预训练模型可以配备各种分类器以适应不同的目标任务。 图8 (Figure 8): 药物开发中基于图像的应用。给定一个分子图像,我们利用计算机视觉技术生成视觉表示,可应用于药物发现、生物活性预测和毒性预测。 表1 (Table 1): 当前关于药物开发的分子表示学习的综述。如表所示,它们都侧重于通用AI技术(GAIT)或特定技术,如NLP和GNN,而未探索与图像相关的学习模型。 表2 (Table 2): 用于药物开发的几个公共数据库。这里我们提供了这些数据库的名称、简要描述、URL和参考文献,旨在促进相关研究。 表3 (Table 3): 不同图像相关模型的图示。我们将使用相同数据集的方法分组,并为每个方法标注发表年份、期刊和具体引文,以使表格清晰。请注意,由于这些方法在其原始论文中采用不同的数据选择方案来评估其有效性,因此无法在同一数据集上对它们进行性能比较。 表4 (Table 4): 用于基于图像的分子表示学习的工具/算法/代码/脚本的完整列表。对于未给出具体名称的算法,我们使用XXX等来表示它们。
Machine Learning & AI
<
>
Touch background to close